文件复制可以由CPU绑定吗?

时间:2015-11-11 10:21:48

标签: linux io linux-kernel operating-system kernel

据我所知,CPU通常比I / O设备(如HDD,网络,RAM等)更快,因此在复制文件时,瓶颈通常是I / O限制的(右侧) ?)。

如果在某种情况下I / O设备比CPU快(如在虚拟机中),是否可以保持CPU忙于移动数据(如从缓冲区到内核空间,从内核空间到用户空间)?它是否会受CPU限制?

2 个答案:

答案 0 :(得分:4)

这取决于程序和运行程序的条件。 复制数据的程序的速度极不可能受到CPU速度的限制。但是,例如,如果计算机运行其他程序使用CPU密集且优先级高于执行副本的程序,则可能出现这种情况。

最常见的瓶颈是持久存储介质速度(例如硬盘) 然后是可用的RAM量。 然后CPU无法使用。

当且仅当IO设备如此超快以至于超过CPU速度时。那可能就是这样。然而,这是一个假设的情况,因为CPU通常不执行复制本身,而是命令其他硬件这样做。 在实际系统中,IO设备可用的带宽远远低于CPU和RAM带宽。

如果复制有效,将RAM数据复制到HDD不应该对CPU造成压力。 RAM和Northbridge的数据可以通过SouthBridge复制到HDD。 另请参阅here

如果复制效率低下,那么程序可以用CPU读取每个字节并复制它。

此外,正如人们可以推断的那样,答案还取决于系统的硬件和架构。

答案 1 :(得分:-1)

恐怕是错误的回答。至少不总是正确的。

如果我在 Windows 资源管理器中复制一个包含大约 50.000 个文件(不同大小)的文件夹,那么 TaskManager 会报告该副本主要受 CPU 限制。 (即 TM 报告低磁盘使用率和非常高的 CPU 使用率)