这两天在折腾两台算力舱之间的四条 25G 光口。四条线都通,测速却只有 12~14Gbps;另一组同样的机器能跑到 17~18Gbps,差得有点多。
对比后发现,驱动版本和物理链路速度都一样,网卡实际跑的参数却不一样。最明显的是 MTU,四条光口里有三条实际只有 1466。
这次主要调了四个地方:
- 四条光口的实际 MTU 统一到 8966。
- IOMMU 从
DMA改成DMA-FQ。 - 中断合并:接收从 512 微秒 / 64 帧调到 6 微秒 / 1 帧,发送从 256 微秒 / 16 帧调到 32 微秒 / 1 帧。
- 队列规则:从根队列
mq改成fq_codel,quantum 设为 8966。
重启后确认参数还在,接着逐口做双向测试,单位是 Gbps:
| 光口 | 调整前 A→B | 调整后 A→B | 调整前 B→A | 调整后 B→A |
|---|---|---|---|---|
| 0 | 12.31 | 17.47 | 12.17 | 17.45 |
| 1 | 14.05 | 17.95 | 13.92 | 17.86 |
| 2 | 12.13 | 17.55 | 12.18 | 17.51 |
| 3 | 12.27 | 17.56 | 12.20 | 17.51 |
搞定!