阿帕奇基准testing从公共networking缓慢,本地速度更快。 我做了什么来加快速度?

我正在testing我的Linode Ubuntu 14 64位服务器,这是他们提供的最基本的服务器。 我正在使用Apache Benchmark来testing服务器,以及我用Python编写的multithreading脚本,但稍后会介绍更多。 使用AB我注意到,当从服务器本地运行本地时,每秒约7k个请求,但是从另一个networking/因特网运行时只有约15个请求。 本地1000个并发连接的响应时间也约为150毫秒。 对于100个并发连接,响应时间大约为1.5-2.5秒。 我运行远程testing的networking有很多带宽,而且我运行它的计算机有很多内存和处理器的速度。 这是一个快速的商业networking。 我甚至在美国的其他两台电脑上试了两台,速度都差不多。

在运行我的multithreading脚本时,我注意到只要尝试了超过100个并发请求,就会打嗝,这是来自外部networking。 我还没有在服务器上本地尝试我的脚本,因为我需要将服务器上的Python升级到3+或将脚本更改为2.7兼容。 我在本地进行了testing,在运行1000个multithreading连接的脚本时获得了150毫秒的响应时间,这只是使用urllib2。

我直接对nginx(一个静态文件),nginx后面的pywsgi应用程序以及直接对pywsgi进行testing。 pywsgi应用程序有一个简单的路线,回复一个基本的回应,所以它应该是快速的。 毫不奇怪,nginx-> pywsgi提供了最好的结果,可能是因为它缓冲了请求。 有没有什么是特定的Linode的networking导致这个问题? 内部和外部testing之间的数量级差异使我想知道可能是什么原因。 唯一的办法就是iptables防火墙,只需要在http / s和ssh中进行过滤。

dmesg没有关于我的testing的信息。

听起来你的桌面机器和你的Linode机器之间有一个networking瓶颈。 一些build议:

  1. 比较从桌面到您的Linode和互联网上其他位置的ping时间,例如google.com和yahoo.com。
  2. 从您的桌面使用traceroute your-linode-ip看看是否有助于find瓶颈。
  3. 尝试使用http://www.webpagetest.org/select东海岸和西海岸地区的Linode,看看它们是如何变化的。