1、系統負載監控
簡介
系統的負載,決定了系統是否出于忙碌狀態。CPU決定了同一時刻系統可以承受的最大負載。可以通過以下指令查看分析系統的負載常用指令
uptime:是從文件/proc/loadavg文件中讀取
$ uptime
16:33 up 48 days, 17:04, 2 users, load averages: 1.38 1.25 1.26
備注:
16:33 : 當前系統時間
up 48 days, 17:04 系統運行時間,時間越長說明系統越穩定
2 users:當前登陸用戶數
load averages: 1.38 1.25 1.26 過去1分鐘、5分鐘、15分鐘內的平均負載,
top:對系統所有運行的進程和系統載荷提供不斷的更新的概覽信息
top - 17:29:49 up 45 days, 23:44, 2 users, load average: 0.00, 0.01, 0.05
Tasks: 78 total, 1 running, 77 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.7 us, 0.7 sy, 0.0 ni, 98.3 id, 0.3 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 1882752 total, 84464 free, 182124 used, 1616164 buff/cache
KiB Swap: 0 total, 0 free, 0 used. 1497328 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1569 root 20 0 158160 9036 1756 S 0.3 0.5 31:44.26 barad_agent
1570 root 20 0 609120 11644 1972 S 0.3 0.6 160:13.13 barad_agent
- 分析實踐
每個cpu內核當前活動進程數最好不大于0.8,1~3時,若其他系統資源正常,可接受,若大于5時,說明已存在問題。
1.38 1.25 1.26 過去1分鐘、5分鐘、15分鐘內的平均負載,可分析出系統負載的趨勢:是否增加、穩固、降低等
注:
- 物理CPU:主板上實際接入的CPU個數,可用數physical id來確定
- CPU核數:每個CPU上面實際接入的芯片組數量,如雙核、四核等。
- 邏輯CPU:一般情況下,邏輯CPU = 物理CPU數量 * CPU核數,如果邏輯cpu多于物理cpu,說明該cpu支持超線程技術
查看全部cpu信息
# 統計物理cpu個數
[root@sell180 ~]# cat /proc/cpuinfo | grep 'physical id' | sort | uniq | wc -l
# 統計cpu核數
[root@sell180 ~]# cat /proc/cpuinfo | grep 'cpu cores' | uniq
# 統計邏輯cpu個數
[root@sell180 ~]# cat /proc/cpuinfo | grep 'processor' | wc -l
# 查看CPU信息(型號)
[root@sell180 ~]# cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c
- 平均負載是指在特定時間間隔內運行隊列中的平均進程數,若一個進程滿足以下條件則可進入隊列中:沒有等待IO操作的結果;沒有主動進入等待狀態;沒有被停止