Linux 网络性能的 15 个优化建议!
💡
原文中文,约6900字,阅读约需17分钟。
📝
内容提要
本文提供了优化网络性能的建议,包括减少网络IO、合并请求、部署近一些、内网调用不用外网域名、调整网卡RingBuffer大小、减少内存拷贝、使用eBPF绕开协议栈的本机IO、减少进程阻塞、使用成熟的网络库、使用Kernel-ByPass新技术、配置充足的端口范围、小心连接队列溢出、减少握手重试、弃用短连接改用长连接、TIME_WAIT的优化。
🎯
关键要点
- 建议1:尽量减少不必要的网络 IO。
- 建议2:尽量合并网络请求以节约 CPU 开销和减少 RTT。
- 建议3:调用者与被调用机器尽可能部署得近一些以降低 RTT。
- 建议4:内网调用不要用外网域名,以提高速度和降低带宽成本。
- 建议5:调整网卡 RingBuffer 大小以防止丢包。
- 建议6:减少内存拷贝,使用 mmap 和 sendfile 系统调用。
- 建议7:使用 eBPF 绕开协议栈的本机 IO。
- 建议8:尽量少用 recvfrom 等进程阻塞的方式。
- 建议9:使用成熟的网络库来高效管理 socket。
- 建议10:使用 Kernel-ByPass 新技术以提高网络性能。
- 建议11:配置充足的端口范围以避免端口不足。
- 建议12:小心连接队列溢出以防止丢包。
- 建议13:减少握手重试次数以提高用户体验。
- 建议14:如果请求频繁,请弃用短连接改用长连接。
- 建议15:TIME_WAIT 的优化以减少端口占用。
➡️