為什麼我的網路伺服器只使用 2 個核心?(可用 8 個核心)
Helo,我的伺服器是 2x 四核,8gb 記憶體,它為一個中等規模的網站執行 LAMP(每天打開 120 頁)我安裝了 munin 來監控 CPU,這是圖表: http://img834.imageshack.us/img834/3483/downloadv.png 為什麼它只使用 8 個核心中的 2 個?也許munin不能很好地計算cpu負載?
有沒有辦法強制多任務處理ip php mysql apache?我已經將 MPM 與 apache 一起使用。
謝謝西蒙
首先,請放心,似乎沒有任何硬體或作業系統問題:您的圖形顯示系統正確地確認了 8 個可用 CPU 的存在;因此,在 BIOS 或 Linux 核心中沒有什麼需要調整的。
至於您的應用程序沒有充分利用所有 CPU 能力的可能原因,它們基本上是三個:
- 您目前的工作量並不需要這麼大的功率。
- 您的應用程序不允許太多(如果有的話)並行化。
- 您的伺服器(MySQL 和 Apache)配置為僅使用單個 CPU。
第三個選項是最不可信的,因為預設情況下 MySQL 和 Apache 非常樂意使用多執行緒,如果可以的話;所以讓我們關注另外兩個。
伺服器在目前負載下的響應時間如何?是感覺“慢”,還是反應迅速?為了排除這種情況,您可以執行基準測試來增加伺服器的負載嗎?如果 CPU 使用率在較重的負載下上升,那麼您的伺服器執行良好,它目前不需要那麼多 CPU 功率。但是,如果它沒有並且伺服器開始響應不佳(或者如果它已經這樣做了),那麼您應該看看選項 2。
關於這一點:Apache 本質上是並行的,因為它“只是”處理和服務網頁;所以罪魁禍首可能是MySQL。您正在針對它執行什麼樣的查詢?您只是在執行 SELECT,還是(可能很頻繁)在插入、更新或刪除數據?另外,你使用什麼樣的事務和鎖?根據所有這些,查詢很可能只是串列執行,因為伺服器無法正確並行化它們。此外,由於 MySQL 正在等待磁碟 I/O 或因為它沒有足夠的可用記憶體,可能會發生同樣的事情。你應該對你的 MySQL 執行一些分析工具,看看它對此有什麼看法。