网络优化

网络请求优化

  1. 尽量减少不必要的网络IO
  2. 尽量合并请求
  3. 调用者机器和被调用者机器部署得近一些
  4. 内网调用优先于外网调用

接收过程优化

  1. 调整网卡 RingBuffer 的大小
  2. 多队列网卡 RSS 调优
  3. 硬中断合并
  4. 软中断 budget 调整
  5. 接收处理合并

发送过程优化

  1. 控制包的大小
  2. 减少内存分配
  3. 推迟分片
  4. 多队列网卡XPS调优
  5. 使用eBPF绕开协议栈的本地网络IO

内核进程优化

  1. 尽量少使用 recvfrom 等阻塞的网络调用
  2. 使用成熟的库

握手过程优化

  1. 充足的端口范围
  2. 客户端不使用 bind
  3. 打开 TCP FAST OPEN
  4. 充足的描述符上限
  5. 减少握手重试
  6. 请求频繁,短链接改为长链接
  7. TIME_WAIT 优化(建议1开启端⼝reuse 和recycle 第⼆个办法是限制TIME WAIT状态的连接的最⼤数量。)