我正在做一个实验,看看CPU负载对网络延迟的影响。我的结果毫无意义,我希望你能理解。这些机器通过两个网络连接。
First link:
[ Host A ] < -- InfiniBand (200 Gbps) -- > [ Host B ]
Second link:
[ Host A ] < -- Ethernet --> [ Switch ] <-- Ethernet -- > [ Host B ]
上面是一个空闲主机A和主机B通过以太网和InfiniBand连接主机A。以太网中位延迟为0.550ms,InfiniBand中位延迟为0.330ms。
上面是一个强调主机A和主机B通过以太网和InfiniBand连接主机A。以太网中位延迟现在为0.360ms,InfiniBand中位延迟为0.115ms。
这两个主机都运行Ubuntu20.04和Linux5.8。
为什么当我强调主机A的所有核心时,我的网络延迟会减少?
发布于 2021-02-13 18:50:33
这完全正常。让我更详细地解释一下。空闲内核(不需要工作的进程)将CPU置于省电模式,并可能降低CPU的核心频率。
每当数据包到达网卡时,网卡就会引发一个中断,该中断向内核发出“网络数据包已经到达”的信号。这需要处理,直到内核网络堆栈决定发送ping答复。现在,当涉及响应时时,默认的linux内核调度程序并没有为此进行优化,因为通常情况下,回复到达0.3ms或0.1ms并不重要。
现在考虑这一点:活动CPU处于最大CPU频率上,不需要从省电模式中唤醒.活动CPU对ping请求的响应比空闲CPU更快。(除非您启动一个实时内核,这是为响应时间而优化的)。
https://serverfault.com/questions/1053552
复制相似问题