主に IO 操作で CPU 使用率が高くなるのはなぜですか?

主に IO 操作で CPU 使用率が高くなるのはなぜですか?

バイナリ ファイルを ext3 ファイルシステムに書き込むプロセスがあります。

これは CPU 上ではかなり簡単なプロセスであると思われますが、システム CPU 使用率は 45% です。これは 40 コア 80 スレッドのサーバーで、RAID 1+0 16 ディスク アレイがあります。

同時に IO を実行するスレッドが 100 個あります。システム CPU のほぼ半分が使用されるのは正常ですか? CPU がこれほど多く使用されている理由を分析する方法はありますか?

ユーザーのCPU使用率は約10~15%です。

プロセスは次のようになります。ファイルからデータを読み取り、そのデータがデータベースにあるかどうかを確認し、そのデータをファイルに書き込みます。データベースは別のマシン上にあり、ログも別のマシン上にあります。ファイルがすでに存在するかどうかを確認します。通常は存在しないため、新しいファイルを作成し、そのファイルにデータを書き込みます。

これが私が見たものです

iostat -xkt 1

03/07/2014 01:06:28 PM
avg-cpu:  %user   %nice %system %iowait  %steal   %idle
          16.14    0.00   43.24    0.01    0.00   40.60

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await  svctm  %util
sdc               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00
sdb               0.00   166.00    0.00   69.00     0.00   940.00    27.25     0.02    0.23   0.17   1.20
sda               0.00   322.00    1.00  598.00   128.00  3680.00    12.71     0.07    0.12   0.09   5.50
dm-0              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00
dm-1              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00
dm-2              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00
dm-3              0.00     0.00    0.00  235.00     0.00   940.00     8.00     0.06    0.26   0.05   1.10
dm-4              0.00     0.00    1.00  920.00   128.00  3680.00     8.27     0.10    0.11   0.06   5.40

答え1

Linux の負荷平均化と一部の負荷モニター (上部) では、io-wait が負荷として表示されます。

基本的に、CPU が IO デバイスを待機しているとき (他の負荷を処理していないとき) は、まだ「負荷がかかっている」とみなされ、負荷平均に影響します。

関連情報