web-dev-qa-db-ja.com

LinuxのCPコマンドがCPUを消費するのはなぜですか?

巨大なファイルの数が少ない2つの大きなディレクトリに対してコピーコマンドを実行すると、cpプロセスが上部のコアの約半分を消費していることがわかります。

51116 root      20   0  110m  876  688 D 43.9  0.0   3:23.83 cp -i -r 165 178 temp       

なぜcpプロセスはCPUを消費するのですか?ほとんどの時間をディスクでの待機に費やしていると思います...

Thx、Boaz

4
Boaz

パーセンテージを確認すると、画面の上部で、ほとんどが%wa(待機中)と%id(アイドル)にあり、%us(ユーザースペース)にはほとんどない(存在する場合)ことがわかります。

ただし、プロセスラインでは、特定のプロセスを待機するために無駄に費やすすべての時間が、そのプロセスに課金されます。別のCPU負荷の高いプロセスが同時に実行されている場合、コピータスクに影響を与えることなくCPUの大部分を消費します。これは、%idおよび%wa時間を使用するためです。

6
Javier

それは動きを管理しています。これには、ファイルの検索、新しいファイルの作成、およびそれらのコピーが含まれます。これにはすべてCPU時間がかかります。ファイルのバッファリング方法により、コピー操作とは非同期にファイルの書き込みが行われるため、これを非常に迅速に行うことができる場合があります。ファイルがバッファリングされていない場合、ファイルへのアクセス中のCPU使用率は非常に低くなる可能性があります。

3
BillThor