加速 Netfilter(通过避免使用 Netfilter)
Imre Palik 试图加速 Linux 的一些网络代码,但遭到了顽固的反对。 从本质上讲,他希望网络数据包绕过 netfilter 代码,除非绝对必要。 他说,Netfilter 的设计是为了灵活性,但牺牲了速度。 根据他的测试,绕过它可以使系统速度提高 15%。
Netfilter 是一种基础设施,它为用户在处理和限制网络流量方面提供了巨大的能力和灵活性。 Imre 的想法是,如果用户不想过滤网络数据包,则甚至不应该遍历 netfilter 代码。 因此,他希望让用户禁用任何不需要它的防火墙的 netfilter。
最初有一些兴趣,也有一些关于他是如何计算出 15% 的速度提升的问题。 Florian Westphal 试图推断出速度提升可能来自哪里。 但是 David S. Miller 否决了这个想法,他说,在通过 perf 进行适当分析之前,任何速度提升的估计都只是猜测。
David 坚决拒绝应用网络补丁,除非有更可靠的迹象表明它们会改善情况。
Imre 解释了他的测试方法,并断言它们对他来说似乎是合理的。 但是 Pablo Neira Ayuso 认为 Imre 的方法太随意了。 他说,需要一种更通用的方法来进行此类测试。
David 对 Imre 的测试完全不满意。 他说,正确的解决方案是加速 netfilter,这样就不需要绕过它,而不是试图绕过 netfilter,即使在没有配置实际过滤器的情况下也是如此。 David 说:“我们需要找到一种干净通用的方法,以便在不使用 netfilter 规则时,使 netfilter 钩子尽可能便宜。”
另一方面,David Woodhouse 认为 15% 的速度提升就是 15% 的速度提升,我们不应该对意外之财挑剔。
但是,David M 坚持立场。 他说,netfilter 钩子是根本问题,“我绝对宁愿看到解决根本问题,而不是随意地用这个和那个旋钮来戳它。”
David W 和其他人开始寻找方法来满足 David M,而无需实际重写 netfilter 钩子。 David W 建议让钩子在检测到它们没有用处时自动禁用自己。
最终,该主题没有得出结论,尽管似乎很明显,目前,Imre 的代码已经胎死腹中。 问题在于 15% 确实是 15%,即使速度提升并不完美,也是有益的。 可以想象,没有人会想出一种好的方法来修复 netfilter 钩子,并且 Imre 的补丁会收到更好的测试和更有意义的性能数据。 到那时,即使是 David M 也可能会说可以。
注意:如果您在上面被提及,并想在评论区上方发布回复,请将您的回复文本发送至 ljeditor@linuxjournal.com。