Vps

Python多執行緒在VPS伺服器上不起作用

  • September 1, 2012

我正在執行一個帶有多個程序的 python 多執行緒應用程序,這些程序從一些網站上抓取數據。在我的 localhost 上執行時效果很好,但在我使用的 vps 伺服器上(Centos 5.8、2.6 GHZ 和 4 核)執行速度非常慢。

從 nethogs 命令我得到網路使用率太低。我用 15 個執行緒得到大約 8KBps。另一方面,在我的 PC 中,我的使用量約為 100-120KBPS。

我已閱讀有關 Python GIL 和執行緒限制的資訊。似乎 GIL 在執行 I/0 時應該不會釋放 VPS 上的鎖

我需要更改 VPS 中的任何配置以使執行緒正常工作嗎?

更新: 實際上多執行緒正在工作,但它是導致問題的 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

使用最近的管理程序和作業系統,您應該會看到一個非零st數字——這是同一主機上的其他虛擬機“竊取”的 CPU 時間,您可以從中計算出您獲得的 CPU 比例。

引用自:https://serverfault.com/questions/423526