如何测试linux NAPI功能?
我试图在嵌入式
Linux环境中测试NAPI功能.我使用’pktgen’生成大量数据包,并尝试在/ proc / interrupts验证我的网络接口的中断计数.
我发现中断计数比生成的数据包要少. 但是增加netdev_budget似乎没有帮助.中断类似于netdev_budget设置为300时观察到的中断计数. 所以这是我的疑问: >’netdev_budget’对NAPI的影响是什么? 任何帮助都是很有帮助的. 提前致谢. 解决方法
我写了一个
comprehensive blog post about Linux network tuning,它解释了有关监控,调优和优化Linux网络堆栈(包括NAPI权重)的所有内容.看一看.
请记住:当NAPI启动时,某些驱动程序不会禁用NIC中的IRQ.他们应该这样做,但有些根本就没有.您可以通过检查驱动程序中的硬IRQ处理程序来验证这一点,以查看是否正在禁用硬IRQ. 请注意,在某些情况下会重新启用硬IRQ,如博客文章及下文所述. 至于你的问题: >增加netdev_budget会增加NET_RX softirq可以处理的数据包数量.可以处理的数据包数量也受限制,该时间限制不可调.这是为了防止NET_RX softirq占用100%的CPU使用率.如果设备在其时间分配期间没有收到足够的数据包进行处理,则会重新启用hardirq并禁用NAPI. 如果我愿意,你可以考虑一个问题: 为什么你的hardirq率很重要?它可能没关系,直接. NIC驱动程序中的hardirq处理程序应该尽可能少地工作,因此执行很多操作可能不是系统的问题.如果是,你应该仔细测量,因为它似乎不太可能.不过,您可以调整IRQ合并设置和IRQ CPU亲和性,以分配处理,以分别改变由NIC生成并由特定CPU处理的硬件数量. 您应该考虑是否可能对数据包处理吞吐量或数据包处理延迟更感兴趣.根据所关注的问题,您可以适当地调整网络堆栈. 请记住:要完全调整和优化Linux网络堆栈,您必须监视和调整每个组件.它们都交织在一起,很难(通常也不够)监视和调整堆栈的单个方面. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |