内核参数
net.core.default_qdisc = fq
net.ipv4.tcp_congestion_control = bbr
net.core.rmem_max = 67108864
net.core.wmem_max = 67108864
net.ipv4.tcp_rmem = 4096 87380 67108864
net.ipv4.tcp_wmem = 4096 65536 67108864$ sysctl --system对远距离客户端而言,更大的缓冲区至关重要:单条 TCP 流的吞吐量上限等于其窗口大小除以往返时间。
网卡
$ ethtool -g eno1 # ring buffer sizes
$ ethtool -G eno1 rx 4096 tx 4096
$ ethtool -k eno1 | grep -E 'segmentation|receive-offload'保持卸载功能(TSO、GRO)开启,并让 irqbalance 将中断分散到各个 CPU 核心。互联网上的 MTU 为 1,500 字节:巨型帧只在私有 VLAN 内才有用。
应用层面
- nginx:启用
sendfile on; tcp_nopush on;,并设置足够的worker_processes以利用多个核心。 - 热点文件请从内存或 NVMe 提供;单靠机械硬盘无法跑满 10 Gbps。
测试
在公网上,单个连接很少能跑满 10 Gbps 端口。请使用多条并行流,对一个距离近、网络连接良好的端点进行测试:
$ iperf3 -c <test-server> -P 8 -t 30





