Pythonmultithreading不能在VPS服务器上工作

我正在运行一个Pythonmultithreading应用程序与多个进程,从一些网站的数据。 在我的本地主机上运行时它运作良好,但在我使用的vps服务器(Centos 5.8,2.6 GHZ,4核心)执行速度非常慢。

从nethogs命令我得到的networking使用率太低。 我用15个线程获得了8KBps。 另一方面,在我的个人电脑,我得到的使用率约为100-120KBPS。

我已经阅读了有关Python GIL和线程的限制。 看来GIL从来没有释放VPS上的锁,尽pipe它应该在做I / 0的时候

VPS中是否有任何configuration需要更改以使线程正常工作?

更新:其实multithreading正在工作,但它是导致问题的CPU。 15线程太多了,线程切换太忙了。 虽然VPS声称它是2.6 GHZ的CPU,我认为其实不然。 有没有办法测量VPS中真实的处理器速度?

您几乎可以肯定的是与同一主机上的其他VPS共享CPU,所以您不能期望获得与专用CPU相同的性能。 GIL在不同的CPU上行为不同,所以这不是原因。 使用top查看VPS上的CPU利用率; 你主要感兴趣的是这样的Cpu线:

 Cpu(s): 30.2%us, 7.8%sy, 0.0%ni, 41.0%id, 20.8%wa, 0.0%hi, 0.2%si, 0.0%st 

使用最新的pipe理程序和操作系统,您应该看到一个非零的st数 – 这是由同一主机上的其他虚拟机“偷走”CPU时间,从中可以计算出您获得的CPU的比例。