如何在LinuxX86_64中检查IRQ延迟以进行性能调整?

问题描述

有没有一种方法可以检查Linux内核中的中断处理延迟?

或者是否有办法检查为什么在Linux 4.19.138的特定配置中cpu使用率仅占40%?


背景

当前我遇到一个问题,我有一台运行第3方Linux-4.19.138内核(其配置文件大约为6000行)或Ubuntu 20.04 X86_64(其配置文件大约为9500行)的X86服务器。 / p>

在此服务器上运行netperf测试时,我发现使用3rd-party Linux-4.19.138内核时,netperf的IO延迟要比使用Ubuntu 20.04的严重。运行第三方内核时,cpu使用率低于40%,而运行Ubuntu 20.04时,则约为100%。

他们在内核运行时中使用相同的内核命令行和相同的性能配置文件
似乎在Linux-4.19.138中限制了服务器中的中断或网络服务器进程。

然后,我使用简短的配置文件(长6000行)重建了Ubuntu 20.04内核,并得到了类似的不良结果。

因此得出结论,内核配置有所不同。

在比较2种配置(6000线与9500线)之前,要缩小范围,我想问的是,有没有办法检查为什么在4.19.138的配置中cpu使用率仅占40%?还是有一种方法可以检查Linux内核中的中断处理延迟?

解决方法

我终于找到了原因。来自
net.core.busy_read和
net.core.busy_poll均为0。
这意味着套接字轮询已禁用,这会影响netperf延迟。

但是问题变成了 在这种情况下,较低的CPU使用率表明Linux中存在某些差异,这是什么工具,或者我们应该如何找出导致2个内核CPU使用率差异的原因?