linux-文件复制可以绑定CPU吗?

提问

据我所知,CPU通常比I / O设备(如HDD,网络,RAM等)快,因此在复制文件时,瓶颈通常是I / O绑定的(对吗?).

如果在某种情况下I / O设备比CPU更快(例如在虚拟机中),是否可以使CPU忙于移动数据(例如从缓冲区到内核空间,从内核空间到用户空间)?然后它会成为CPU绑定的吗?

最佳答案

它取决于程序和程序运行的条件.
程序复制数据的速度极不可能受到CPU速度的限制.但是,例如,如果计算机运行的其他程序占用大量CPU并比执行复制的程序具有更高的优先级,则可能是这种情况.

最常见的瓶颈是持久性存储介质的速度(例如硬盘驱动器)
然后可用的RAM量.
然后,CPU蜂鸣声不可用.

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

如果复制有效完成,则将RAM数据复制到HDD不会给CPU造成压力.
来自RAM和北桥的数据可以通过SouthBridge复制到HDD.
另请参见here.

如果复制效率低下,则程序当然可以使用CPU读取每个字节并进行复制.

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