299 shaares
这篇文章主要探讨了关于Linux网络IO低延迟方案,特别是针对solarflare高性能网卡的使用经验。文章提到了三种与solarflare相关的kernel bypass软件解决方案:Onload、ef_vi和Tcpdirect,并分享了对它们性能的测试结果和个人使用感受。
作者提到了对这些解决方案进行了实际测试,特别是通过实现一个贴合实际的echo测试来测量延迟。在测试中,作者发现最佳的延迟约为960ns +/- 90ns,使用了最新的X2系列网卡、ef_vi接收UDP、Tcpdirect发送TCP,并采用了屏蔽中断的内核优化。
此外,文章还简要谈到了对三个不同的stack的使用感受:
- Onload:易用性强,适合新手入门,性能相对较好。
- ef_vi:提供最佳性能,但API较复杂,适合专业用户。
- Tcpdirect:基于ef_vi,提供上层协议支持,适合UDP发送端和整个TCP使用。
最后,文章提到了如何测量网卡到网卡的延迟,包括使用交换机镜像、tap设备、本地抓包工具等不同方法,并详细讨论了各种本地记录网络包时间戳的方法,包括tcpdump、onload_tcpdump、solar_capture、通过ef_vi/tcpdirect API获取网卡时间戳、sfptpd等。
总的来说,这篇文章提供了关于Linux网络IO低延迟方案以及solarflare网卡的使用经验和测试结果,对于需要优化网络性能的开发者和工程师可能会有一定参考价值。