随着越来越多的公司转向公共云服务,我很好奇你们对云中的 TCP/IP 调优有何看法。这值得吗?鉴于您无法访问主机服务器,我猜您的能力会受到一定限制
为了论证的目的,假设您在 FreeBSD 或 Linux 上的副本集中运行三个 MongoDB 服务器,它们都通过内部网络同步。
我也想知道是否有人做过实际的性能基准测试来支持他们的论点。我对 KVM/Qemu 可用的各种网络驱动程序进行了基准测试这里但我很好奇这里的大师们建议进一步调整什么。
我开始按照上面的建议进行一些调整这里,但有趣的是,我看到性能下降了,而不是提高了,但也许我没有完全理解这些调整。
更新:我又做了一些基准测试,并发布了结果这里。不幸的是,结果并不如我所料。
答案1
我想提出的两点可能会影响你的结论。
1) 回顾关于自动调整的内容。我记得此功能最早出现在 2.6.18 Linux 内核中,并在后续内核中得到了改进。简而言之,它的作用是允许内核动态更改网络程序员习惯进行的 tcp 调整。谷歌搜索 autotune linux。另请参阅http://www.psc.edu/networking/projects/tcptune/?_sm_byp=iVVq2rrM1N2DqN0r#Linux
简而言之,让 Linux 为您调整 tcp 堆栈参数,不要干预,因为这可能会降低性能。
我的第二点是检查你使用的 KVM_QEMU 版本。性能方面已经做了很多工作,而 VIRTIO_NET 的早期版本中有一个错误,限制了高速网络上的性能。由于 KVM_QEMU 现在是 1.0,所以就用这个版本吧。