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

我只是运行一个副本命令的两个大目录与less量的巨大的文件,我看到我的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,波阿斯

如果你检查百分比,在屏幕顶部,你会发现它主要是%wa (等待)和%id (空闲),而%us (用户空间)中的很less(如果有的话)。

但是在stream程线上,它一直等待一个给定过程的时间总是花费在这个过程中。 如果另一个CPU繁重的进程同时运行,则会占用大部分CPU而不影响复制任务,因为它将使用%id%wa时间。

正在pipe理这一举措。 这包括查找文件,创build新文件和复制文件。 所有这些都需要一些CPU时间。 由于文件被缓冲的方式,文件写入asynchronous执行到复制操作可能会非常快。 如果这些文件没有被缓冲,那么在访问文件时,CPU利用率可能会很低。