Amazon EC2インスタンスでいくつかのテストを実行していますが、CPU使用率を常に80%以上に保ちたいと思います。
高い優先順位で実行しなければならないプログラムがありますがmain
、CPU負荷を80%以上に高める他のプログラム、好ましくは数学Cコードやbashスクリプトを起動したいと思います。
これらのタスクを実行するために使用できるプログラムは何ですか。プログラムを最高の優先順位で実行するにはどうすればよいですか。
PS:Fedoraを実行してください。
答え1
シェルでCPUを100%(オーバーヘッドを除く)で占めるのは簡単です。
while true; do :; done
負荷を軽減するには、睡眠を導入してください。
i=0; while [ $i -ne 0 ] || sleep 0.001; do i=$(( (i+1) % 10000 )); done
希望の負荷を得るには、10000を上下に調整します。
スケジューリング優先順位はで設定されますnice
。デフォルトよりも高い優先順位を設定するには、ルートである必要があります。否定的な親近感は高い優先順位を意味します(肯定的な親近感は低い優先順位を意味します)。
nice -20 sh -c 'while …'
答え2
「nice」を使用すると、優先順位を制御できます。最も高い優先順位の場合(ルートのみ):
nice -n -20 yourprogram
最低の場合:
nice -n 19 yourprogram
IOも制御する必要がある場合は、ioniceを使用してください。 「man Nice」と「man ionice」は文書化に使用されます。