为什么Linux上的CP命令会消耗CPU?

为什么Linux上的CP命令会消耗CPU?

我刚刚对两个包含少量大文件的大目录运行了复制命令,我发现我的 cp 进程消耗了大约一半的核心:

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

为什么 cp 进程会消耗 CPU?我猜想它大部分时间都在等待磁盘...

谢谢,波阿兹

答案1

如果您检查百分比,在屏幕顶部,您会看到它大部分时间处于%wa(等待)和%id(空闲)状态,而(用户空间)中则很少(如果有的话)%us

但是在流程线上,它空闲地等待给定进程的所有时间都被计入该进程。如果另一个占用大量 CPU 的进程同时运行,它将占用大部分 CPU,而不会影响复制任务,因为它将使用和%id时间%wa

答案2

它管理移动。这包括查找文件、创建新文件和复制文件。所有这些都需要一些 CPU 时间。由于文件的缓冲方式,文件写入与复制操作异步发生,因此可能非常快地完成此操作。如果文件没有缓冲,则访问文件时 CPU 利用率可能会非常低。

相关内容