作為免責聲明,我已閱讀與該主題相關的問題,但對於我所看到的情況仍然有點困惑。
並且:
我擔心我的一台伺服器上的負載。
執行 htop 時,顯示我有 40 個核心。我的平均負載是 9.35、9.58、8.55。
我最初的想法是這個值很高,但伺服器中安裝的處理器是: INTEL XEON E5-2650V3 (2.3GHZ/10-CORE/25MB/105W) FIO PROCESSOR KIT INTEL XEON E5-2650V3 (2.3GHZ/10- CORE) /25MB/105W) 處理器套件
我的困惑是,我不確定為什麼 htop 列出了 40 個核心,但我只有兩個 10 核心處理器。
2個問題:
如果我有兩個 10 核心處理器(總共 20 個核心),負載為 10 是否合理?
另外,為什麼 htop 會在頂部顯示 40 個核心?
答案1
在這種情況下,負載為 10 是合理的。經驗法則是您希望平均負載小於核心總數。您似乎擁有雙倍核心數量的原因是超執行緒。以下是連結的維基百科文章的摘錄:
對於實體上存在的每個處理器核心,作業系統會定址兩個虛擬或邏輯核心,並在可能的情況下在它們之間分擔工作負載。超線程的主要作用是增加管線中獨立指令的數量;它利用超標量架構,其中多個指令並行地對單獨的資料進行操作。借助 HTT,一個實體核心對於作業系統來說表現為兩個處理器,作業系統可以使用每個核心同時調度兩個進程。此外,兩個或多個進程可以使用相同的資源:如果一個進程的資源不可用,則另一個進程如果其資源可用則可以繼續。
答案2
您有兩個 10 核 CPU,總共 20 個核心,但每個核心都是超線程的,並且在作業系統中顯示為兩個 CPU:最終總共有 40 個 CPU。 (我稍微簡化了;內核知道核心和線程之間的差異並考慮到它。)這就是htop
顯示的內容。
就你的負載而言,10 就可以了;一條經驗法則(在對答案的評論中給出)了解系統負載)是,如果負載大於 CPU 數量,但在您的情況下它小於(實際)核心數量,則監視應發出警告。