我刚刚对两个包含少量大文件的大目录运行了复制命令,我发现我的 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 利用率可能会非常低。