网络优化
网络请求优化
- 尽量减少不必要的网络IO
- 尽量合并请求
- 调用者机器和被调用者机器部署得近一些
- 内网调用优先于外网调用
接收过程优化
- 调整网卡 RingBuffer 的大小
- 多队列网卡 RSS 调优
- 硬中断合并
- 软中断 budget 调整
- 接收处理合并
发送过程优化
- 控制包的大小
- 减少内存分配
- 推迟分片
- 多队列网卡XPS调优
- 使用eBPF绕开协议栈的本地网络IO
内核进程优化
- 尽量少使用 recvfrom 等阻塞的网络调用
- 使用成熟的库
握手过程优化
- 充足的端口范围
- 客户端不使用 bind
- 打开 TCP FAST OPEN
- 充足的描述符上限
- 减少握手重试
- 请求频繁,短链接改为长链接
- TIME_WAIT 优化(建议1开启端⼝reuse 和recycle 第⼆个办法是限制TIME WAIT状态的连接的最⼤数量。)