我們有一個包含實體機硬體的集群
每台機器包含32個CPU
# lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 32
On-line CPU(s) list: 0-31
Thread(s) per core: 2
Core(s) per socket: 8
現在我們希望每次正常運行時間到 5 分鐘的平均負載達到閾值時發送警報
據我了解,當平均負載(正常運行時間 5 分鐘)值超過 32(CPU 數量)時,我們需要擔心
我對麼 ?
答案1
平均負載主要不會顯示 CPU 負載,它是工作項佇列長度的近似值。在現實生活中,這通常更受 I/O 等待中浪費的 CPU 週期的影響,然後是實際使用的 CPU 週期(當然,這取決於工作負載)。
查看該top
工具以確定您的 CPU 如何花費時間的初步估計。根據經驗(並且僅有的因此)考慮
- 高
User
百分比是健康的 - 您的機器使用良好 - 高
Sys
百分比可能表示應用程式效率不高(或 VM 來賓運行未最佳化的作業系統/驅動程式組合) - 高
Wait
時間意味著您的 I/O(很可能是儲存)無法跟上。這可能再次表明需要在應用程式內部進行最佳化,或者只是對儲存硬體要求過高(最值得關注的地方:旋轉磁碟是否用於延遲敏感的工作負載?您是否使用 RAID5 進行小型寫入?)