Scientific Linuxビルドシステムがあります。
$ cat /etc/redhat-release
Scientific Linux release 6.5 (Carbon)
ビルドプロセスの一部として、多くの(数百)のターゲットファイルが単一のファイルにアーカイブされるアーカイブステップがあります.a
。約1分かかるこのアーカイブフェーズ中は、他のプロセスがディスクに書き込むことはできません。たとえば、このアーカイブフェーズ中にvimセッションに書き込もうとしているユーザーは、アーカイブが完了するまで停止されます。
ioniceを使って構築する人にもかかわらず、これが起こります。
ionice -c2 -n7 nice -n19 make -j64 PRETTY=1 <target>
ファイルに書き込む前に、vimセッション(およびtmuxセッションやシェルセッションなど)が正しく機能するため、これはioの問題のようです。
これを引き起こす可能性のあるボトルネックは何ですか?
答え1
まず、ionice -c3
アイドルスケジューリング(必要なもの)を意味し、-c2
最善の努力を尽くします。
第二:利用可能cgroups blkioコントローラスケジュールを微調整するために使用されます。
第三:物理コアよりも多くのスレッドを使用しないでください。したがって、コンピュータに64個のコアがない場合は、コア数を減らしてください。たとえば、-j4