Amazon EC2 VPC:NAT实例下载速度性能下降

Modified on: Fri, 18 Oct 2019 02:00:02 +0800

我在VPC中的Amazon EC2中有一组服务器。在这个VPC内部,我有一个私有子网和一个公有子网。在公共子网中,我在t2.micro实例上设置了一台NAT机器,它基本上运行这个NAT脚本< / a>启动时,将规则注入iptables。从私有子网内的机器下载互联网上的文件可以正常工作。

但是,我将外部高带宽FTP服务器上的文件直接从我的NAT机器下载速度与私有子网内机器(通过同一台NAT机器)的下载速度进行了比较。存在一个非常显着的差异:从NAT机器大约10MB / s,从私有子网内的机器下载时大约1MB / s。

NAT计算机上没有CPU使用率,因此这不是瓶颈。当用更大的机器(具有“中等网络性能”的m3.medium和具有“高网络性能”的m3.xlarge)尝试相同的测试时,我也无法获得大于2.5MB / s的下载速度。

这是一个可以(并且应该)调整的一般NAT问题吗?性能下降来自哪里?

更新强>

通过一些测试,我可以缩小这个问题。当我从2013年开始使用Ubuntu 12.04或Amazon Linux NAT机器时,一切运行顺利,即使在最小的t2.micro实例上也能获得完整的下载速度。无论我使用PV还是HVM机器都没关系。
这个问题似乎与内核有关。这些旧机器的内核版本为3.4.x,而较新的Amazon Linux NAT机器或Ubunut 14.XX的内核版本为3.14.XX.有没有办法调整新机器?

作者:,j0nes

最佳答案

我们终于找到了解决方案。您可以通过在NAT计算机上运行来修复下载速度(以root用户身份):

ethtool -K eth0 sg off

这会禁用分散 - 聚集模式,据我所知,这会停止卸载网卡上的某些网络工作。禁用此选项会导致客户端CPU使用率增加,因为CPU现在必须自行完成工作。然而,在t2.micro机器上,我们在下载DVD映像时只看到了大约5%的CPU使用率。

请注意,这将无法在重新启动后继续存在,因此请务必在rc.local中设置此项,或至少在设置NAT之前设置此项。

作者:,j0nes

相关问答

添加新评论