良いプロセスはどのくらいのコア時間を引き起こしますか?

良いプロセスはどのくらいのコア時間を引き起こしますか?

不要なときに実行されるCPU使用量警告があります。

/proc/stat紙の成長と紙の全体的な成長を読んで比較していました。増加率が十分に高いとビープ音が鳴ります。私は計算に入れません。周りに良いプロセスがありますが、必要に応じてこれらのプロセスが予定されていなくても、重要なプロセスは続行できてうれしいです。usersystemnice

ところが、アラームが発生すると%user全く上昇がない場合がよくあります。しかし、増加し%nice%systemいくつかの良いプロセスはカーネル操作をトリガーします。

私の質問は次のとおりです

  1. より重要なプロセスにCPU時間が必要な場合は、良いプロセス(およびそのプロセスがトリガーするカーネルタスク)のスケジュールがキャンセルされるのは正しいですか?
  2. %system良いプロセスによって引き起こされた金額がどのくらいになるかをどうやって知ることができますか?

現在CentOS 6(2.6.32)を実行していますが、将来のバージョンでこの問題が修正されたらバックポートを考えてみましょう!

ベストアンサー1

これはおそらく、良いプロセスが何をするか、特に問題を引き起こすシステムコールの数と、問題を呼び出すシステムコールに依存します。これはnotnice.asm、システム時間の面でほとんど最悪の動作を示す可能性のある悪いプログラムです。

# Linux, x86_64, NASM
bits 64
section .data
letter: db "n"
section .text
global  _start
_start: mov rsi,letter
        mov rdi,1       ; stdout
        mov rdx,1       ; length
_again:                 ; on assumption above not unset by syscall...
        mov rax,1       ; sys_write
        syscall
        jmp _again

以下を実行しても、nice -n 19システム時間は継続して実行する必要があります。

$ nasm -f elf64 notnice.asm -o notnice.o
$ ld notnice.o -o notnice
$ nice -n 19 ./notnice >/dev/null

topその後、このプロセスは非常に厳しいループにあるため、CPUの100%を占めていることを確認する必要があります。少なくとも忙しい他のcentos7テストホスト(それぞれ4つのCPUがある/proc/cpuinfo)の場合、システム時間の約〜20%です。 5%はかなり良好で、その他のアイドル状態は次のとおりです。

%Cpu(s):  0.1 us, 19.1 sy,  5.9 ni, 74.9 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st

この場合、システム時間の約100%が悪いプロセスによって引き起こされます。この実行により優先度の高いプロセスを実行し、システムの負荷がどのように変更されるか(おそらくSystemTapなどを使用して)確認するか、高速ファイルsys_writeシステムに出力し、優先度の高いプロセスによってI/O速度が変更されるか確認することもできますnotnicenotnice...)

SystemTap は、以下により、より良い粒度を提供できます。https://sourceware.org/systemtap/examples/general/stopwatches.stpただし、これを行うには、録音の開始時にプロセスがユーザースペースにある必要があります。

おすすめ記事