高いシステム使用率により、膨大なCPU負荷が発生する

高いシステム使用率により、膨大なCPU負荷が発生する
Tasks: 747 total, 176 running, 560 sleeping,   0 stopped,  11 zombie
Cpu(s): 10.5%us, 89.2%sy,  0.0%ni,  0.0%id,  0.0%wa,  0.0%hi,  0.3%si,  0.0%st
Mem:  74236420k total, 73285344k used,   951076k free, 12261184k buffers
Swap:  8388600k total,    10404k used,  8378196k free, 27872176k cached

%syがCPUの89%を使用しています。 %syとは何ですか?

これがiostatの姿です

root@host [~]# iostat -xk 5
Linux 2.6.32-431.20.3.el6.x86_64 (host.superhostsite.com)       09/03/2014      _x86_64_        (8 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
          43.02    0.28   50.00    0.05    0.00    6.65

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await  svctm  %util
sdb               0.25    64.95   14.21   79.82    91.86   579.51    14.28     0.15    1.60   0.09   0.84
sda               0.87   182.70   28.06  206.05   247.08  1629.10    16.03     0.49    2.07   0.09   2.22

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           8.45    0.00   91.55    0.00    0.00    0.00

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await  svctm  %util
sdb               0.00    14.00    0.20   15.00     3.20   116.00    15.68     0.03    1.92   0.28   0.42
sda               0.00    23.20    2.00   47.80    25.60   284.00    12.43     0.02    0.42   0.14   0.70

したがって、ディスク使用量は非常に少なくなります。すべてが小さいです。しかし、システムのCPU使用率は89.2%に達しました。

%syはなぜそんなに高いのですか?なぜ私たちはできませんか?

ベストアンサー1

あなたの質問は基本的に「ここで何が起こっていますか?」と思います。

お客様の結果を解釈して回答いたします。役立つ場合は、お知らせください。詳細を追加します。
(質問を編集して質問をより明確にしてください。そうしないと、質問が閉じられる可能性があります。)

はい、「高いため」と表示されます。CPU用法」!

上部の出力を見てみましょう。

Cpu(s): 10.5%us, 89.2%sy, 0.0%ni, 0.0%id, 0.0%wa, 0.0%hi, 0.3%si, 0.0%st

パーセント値は、ユーザーコードまたはシステム(カーネル)コードで時間がかかる場所を示します。これは%syシステムコードの時間であり、ユーザー時間に対する追加の10%usです。それではCPU使用量は100%です! (0%id-idle-でも見ることができます。)

しかし、もっとたくさんあります:

Tasks: 747 total, 176 running, 560 sleeping, 0 stopped, 11 zombie

176の実行中のプロセスがあります。ただし、コア数が176個未満の場合、一部のコアはCPU時間があれば実行できる状態です。
つまり、負荷が増え、より多くのCPUを100%の利用率で引き上げることができます。
CPU使用率は89.2%ではありません。 100%です。

この観点からは理由はありませんiostat。この状態では、システムに多くのIOは必要ありません。

しかし、私たちに必要な情報は、少なくとも176のプロセスまたはスレッドが何であるか、実行されていない同様のタスクがより多くある可能性があることです。

次条:彼らは何をしているのですか、その理由は何ですか?

したがって、プロセスのリストを見てくださいtop。いくつかの明らかな問題が現れることがあります。

「実行可能」状態のプロセスの詳細を学ぶのに役立ちます。
次のコマンドは、「実行可能」状態のすべてのプロセスとスレッド(CPU時間が解放されたときに実行できるアクション)を一覧表示します。

ps -o comm,pid,ppid,user,time,etime,start,pcpu,state --sort=comm aH | grep '^COMMAND\|R$'

ps私には、自分自身を含む1〜2行だけが表示されます。

おすすめ記事