我正在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议:
traceroute your-linode-ip看看是否有助于find瓶颈。