查看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。
所以日常運維管理,服務器遷移升配置等操作時,可以仔細觀察服務器性能,然后根據需求來調整。