我注意到,在 Linux 中处理大量网络流量时,内核时间很长。我还注意到 45% 的 CPU 都花在了中断上。我该如何进一步解决这个问题?
答案1
这些systemtap
东西应该可以让你深入了解内核,最近还可以深入了解应用程序,以进行跟踪、故障排除和调试。我自己没用过。
高网络流量的高中断流量可能是由于网卡或驱动程序不够亮,也许高端卡可以提供更好的结果。内核对网络的处理也得到了改进,也许更新内核会有所帮助。
OTOH,如果 50% 的 CPU 使用率用于中断,而 CPU 利用率为 3%,则应该没有什么可担心的...检查您拥有的数据(以及您如何收集这些数据,精确的数字的含义是)并仔细考虑一下。
最后,问题不应该是“测量 foo 得出的结果为 bar”,而应该从“性能很差/不可接受,我需要测量什么才能找出瓶颈在哪里,以便我可以将其消除”开始。如果这导致了上述问题,那很好,但您知道自己要去哪里。