JVM がハードディスクの書き込み/読み取りに影響を与えるのだろうか?
JVM がプロセスに割り当てられたヒープ メモリを制御できることはわかっています。たとえば、シェルでは、割り当てられたヒープメモリを設定するためにこれを行います:
java -Xms512M -Xmx1024M -jar my_java_program.jar
それで、ハードディスク(IO)の書き込み/読み取りの最大速度または最小速度を設定することは可能ですか?
感謝
編集 :
テキストファイルを一貫して書き込むJavaプログラムを作成しました。私のプログラムには次のアーキテクチャがあります:
public class Generator {
public static void main(String[] args) throws Exception {
// Variables initialization ...
// Loading in RAM some data to generate my text files
while(true){
// Writing the file
BufferedOutputStream buff = new BufferedOutputStream(new FileOutputStream(new File(temporaryFolderPath, fileName)), 51200000);
buff.write((some stuff ...).getBytes());
buff.flush();
buff.close();
}
}
}
このプログラムの実行可能な JAR を生成し、これを 8 CPU の仮想マシンで実行します。私の目的は、このプログラムの書き込み速度を確認することです。そのため、iostat コマンドを使用して IO ディスク転送を確認しました。
1 つのインスタンスでの結果:
wsec/s : 約 8000
with wsec/s : 1 秒あたりにハードディスクに書き込まれたセクターの数 (セクターのサイズはわかりません)
2 つのインスタンスの結果:
wsec/s : 約 16000
3 つのインスタンスの結果:
wsec/秒: 32000
私の質問 :
Java プログラムのインスタンスを複数回実行すると、書き込みが速くなるのはなぜですか? または、1 つのインスタンスに対してこの書き込み速度を制限できるものは何ですか?