探究CPU和平均負載的關系

查看cpu總核心數
grep -c 'model name' /proc/cpuinfo
查看當前服務器負載:top
top - 16:23:33 up 12 days, 23:35,  2 users,  load average: 0.18, 0.14, 0.14
Tasks: 141 total,   1 running, 140 sleeping,   0 stopped,   0 zombie
%Cpu0  :  0.7 us,  1.3 sy,  0.0 ni, 98.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu1  :  0.7 us,  1.0 sy,  0.0 ni, 98.3 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  2027960 total,   166024 free,   954732 used,   907204 buff/cache
KiB Swap:        0 total,        0 free,        0 used.   903032 avail Mem

其中load average后面分別是1分鐘、5分鐘、15分鐘平均負載
數字越大,服務器負載越高。

這里經常會碰到有些服務器1分鐘平均負載已經超過5了,或者任意比1大的數是怎么回事呢?怎么算正常呢?

這里舉一個例子:
比如1個CPU,那么服務器所有運算都由這一個CPU來計算,最大處理100%把CPU占滿,后面再有運算就要排隊。
如果2個CPU,那么最大處理200%,以此類推。
只要不超過CPU數量太多就沒事,如果1個CPU,負載已經3.x了,那么就是又問題的,CPU處理不過來就會影響當前服務器的業務,是很危險的,也是我們平時需要監控的一個重要指標。

那么可以得到一個公式

n個CPU的電腦,可接受的系統負荷最大為n.0。

所以日常運維管理,服務器遷移升配置等操作時,可以仔細觀察服務器性能,然后根據需求來調整。

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容