2014-12-25 28 views
1

我寫了兩個簡單的服務返回一個常量值。在運行100,000個併發客戶端線程以在分離的實驗中將它們裝載到同一臺機器上之後,我發現沒有一個CPU內核的利用率超過10%。即使在更改客戶端代碼以在不定式循環中生成客戶端線程之後,服務器核心利用率也不會改變。 這種行爲是因爲某些沒有通過每個請求執行的CPU指令嗎? 如果是,它們是什麼樣的結構?爲什麼IIS或Apache不能在滿負荷下使用所有CPU容量?

回答

2

某些任務是I/O綁定的,而不是CPU綁定。

這意味着無論您創建什麼樣的負載,RAM和磁盤和網絡活動都會在CPU發生之前最長。

而且在某些情況下,達到一定百分比的CPU負載後,它不會再增加,因爲負載的性質只是使用本質上有限的函數子集。

根據我的經驗,如果Apache正在使用100%的CPU,那麼您的PHP腳本不正確或PHP進程出現故障。

相關問題