私たちは、OpenMPを利用して複数のスレッド(コアごとに1つ)で計算を実行して、利用可能なすべてのCPUを飽和させる長期実行プロセスを持っています。
私は24コアすべてで実行されているサーバーのtop(1)を見ています。
予想されるように、%CPU列にはCPUの2380〜2400%を消費するプロセスが表示されます。数時間休むことなく実行されました。
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
27647 xxx 20 0 1416m 232m 11m R 2390.8 0.1 2324:59 pig
ただし、負荷平均は9から11の間でのみ変動します。
top - 19:22:37 up 25 days, 5:35, 5 users, load average: 10.78, 10.24, 9.60
そして私はそれが24のまわりか24のすぐ下にあると期待します。
%CPUが嘘をついているのですか?プロセスは実際に半分以上の時間I / Oを実行していますが、まだ実行中であると報告されていますか?それとも負荷平均計算が間違っていますか?
これはLinux、RHEL-6、カーネル2.6.32-696.6.3 ...にあります。