1、cat /proc/loadavg命令
此命令用於查看系統平均負載。
$ cat /proc/loadavg 0.08 0.06 0.10 1/442 8347
前三項分別是最近1分鍾、5分鍾和15分鍾的系統平均負載。系統平均負載為在特定時間間隔內運行隊列中的平均進程數,包括正在CPU上運行或者等待運行的進程。
第四項,分子是正在運行的進程數,分母是進程總數。
最后一項是最近運行的進程ID號。
2、top 命令
Top命令是最常用的查看系統資源使用情況的工具,可以查看CPU、內存等資源的使用情況。
$ top top - 10:00:34 up 193 days, 15 min, 2 users, load average: 0.03, 0.05, 0.10 Tasks: 168 total, 1 running, 167 sleeping, 0 stopped, 0 zombie %Cpu(s): 0.8 us, 0.8 sy, 0.0 ni, 98.4 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem : 32946324 total, 10400992 free, 2478008 used, 20067324 buff/cache KiB Swap: 0 total, 0 free, 0 used. 28319396 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 9106 root 20 0 1230476 46344 15688 S 6.7 0.1 626:31.26 containerd 1 root 20 0 51768 3836 2416 S 0.0 0.0 116:33.67 systemd 2 root 20 0 0 0 0 S 0.0 0.0 0:07.89 kthreadd 3 root 20 0 0 0 0 S 0.0 0.0 0:13.71 ksoftirqd/0 5 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0H 7 root rt 0 0 0 0 S 0.0 0.0 0:15.24 migration/0 8 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcu_bh 9 root 20 0 0 0 0 S 0.0 0.0 200:13.21 rcu_sched 10 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 lru-add-drain
與CPU使用情況相關的主要是前三行,顯示的是整個系統的cpu使用狀況。另外,%MEM列實時顯示了每個進程的CPU使用率。
第一行是基本情況,分別是:當前時間,系統運行時長,當前登錄用戶數,系統平均負載(同cat /proc/loadavg命令前三個值)。
第二行是進程狀況,分別是:進程總數,正在運行的進程數,睡眠的進程數,停止的進程數,僵屍進程數。
第三行是CPU使用信息,分別是:用戶空間占用CPU時間百分比,內核空間占用CPU時間百分比,用戶進程空間內改變過優先級的進程占用CPU時間百分比,空閑CPU時間百分比,等待輸入輸出的CPU時間百分比,CPU服務於硬件中斷的CPU時間百分比,CPU服務於軟件中斷的CPU時間百分比,被虛擬機偷走的CPU時間百分比。
3、vmstat命令
vmstat是Virtual Meomory Statistics(虛擬內存統計)的縮寫,可對操作系統的虛擬內存、進程、CPU活動進行監控,是對系統的整體情況進行統計。
$ vmstat procs -----------memory----------- --swap-- --io-- --system-- -----cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 1 0 0 14376368 161976 1130836 0 0 0 3 2 2 0 0 100 0 0
我們只關注cpu列:
us:用戶進程執行時間百分比
sy:系統進程執行時間百分比
id:空閑時間百分比
wa:等待IO時間百分比
st:被虛擬機偷走的cpu時間百分比
4、iostat命令
iostat是I/O statistics(輸入/輸出統計)的縮寫,iostat將對系統的磁盤操作活動進行監視。iostat命令主要是用來查看IO使用狀況,也可以查看cpu使用情況。
Linux 3.10.0-862.3.2.el7.x86_64 (instance-34rgafwb) 01/03/2020 _x86_64_ (8 CPU) avg-cpu: %user %nice %system %iowait %steal %idle 0.17 0.02 0.15 0.00 0.00 99.64 Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn vda 1.94 0.30 18.15 5030634 302731996 vdb 0.00 0.00 0.00 6252 148
avg-cpu 行是CPU平均使用率,與前述命令類似:
%user:CPU處在用戶模式下的時間百分比。
%nice:CPU處在帶NICE值的用戶模式下的時間百分比。
%system:CPU處在系統模式下的時間百分比。
%iowait:CPU等待輸入輸出完成時間的百分比。
%steal:管理程序維護另一個虛擬處理器時,虛擬CPU的無意識等待時間百分比。
%idle:CPU空閑時間百分比。
5、sar命令
sar(System Activity Reporter,系統活動情況報告)是目前 Linux 上最為全面的系統性能分析工具之一,可以從多方面對系統的活動進行報告,包括:文件的讀寫情況、系統調用的使用情況、磁盤I/O、CPU效率、內存使用狀況、進程活動及IPC有關的活動等。我們現在只關注CPU使用率和系統負載。
- 輸出CPU使用率的統計信息:
sar 10 3 //每10秒采樣一次,連續采樣3次 sar -u 10 3 //同上
sar //輸出全天cpu使用率的統計信息
sar -p //同上
sar -P ALL 2 3 //每2秒采樣一次,連續采樣3次,輸出CPU每個核心的使用率
輸出如下:
# sar -u 10 3 Linux 2.6.32-642.13.1.el6.x86_64 (appstore-nginx-test) 01/03/2020 _x86_64_ (8 CPU) 02:26:29 PM CPU %user %nice %system %iowait %steal %idle 02:26:39 PM all 0.28 0.00 0.31 0.01 0.01 99.38 02:26:49 PM all 0.33 0.03 0.31 0.05 0.03 99.26 02:26:59 PM all 0.29 0.00 0.35 0.03 0.03 99.31 Average: all 0.30 0.01 0.33 0.03 0.02 99.32
CPU列的 “all” 說明統計信息是所有cpu使用率的平均值,數字 “x” 說明此統計信息是CPU核心x的使用率。各列數據的意義與前述幾個命令一樣,不再贅述。
- 系統平均負載
監控進程隊列長度和平均負載,每10秒采樣一次,連續采樣3次:
# sar -q 1 3 Linux 2.6.32-642.13.1.el6.x86_64 (appstore-nginx-test) 01/03/2020 _x86_64_ (8 CPU) 03:01:01 PM runq-sz plist-sz ldavg-1 ldavg-5 ldavg-15 03:01:02 PM 0 512 0.06 0.03 0.00 03:01:03 PM 0 512 0.06 0.03 0.00 03:01:04 PM 0 512 0.06 0.03 0.00 Average: 0 512 0.06 0.03 0.00
輸出項說明:
runq-sz:運行隊列的長度(等待運行的進程數,每核的CP不能超過3個)
plist-sz:進程列表中的進程(processes)和線程數(threads)的數量
ldavg-1:最近1分鍾的CPU平均負載,即將多核CPU過去一分鍾的負載相加再除以核心數得出的平均值,以下類似
ldavg-5:最近5分鍾的CPU平均負載
ldavg-15:最近15分鍾的CPU平均負載
6、mpstat命令
- 顯示所有CPU整體(平均)使用狀況
# mpstat //不帶參數時,輸出為從系統啟動以來的平均值 Linux 2.6.32-642.13.1.el6.x86_64 (appstore-nginx-test) 01/03/2020 _x86_64_ (8 CPU) 03:14:40 PM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %idle 03:14:40 PM all 1.59 0.05 0.74 0.05 0.00 0.04 0.03 0.00 97.51 # mpstat 1 5 //每1秒收集一次,共5次 Linux 2.6.32-642.13.1.el6.x86_64 (appstore-nginx-test) 01/03/2020 _x86_64_ (8 CPU) 03:25:58 PM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %idle 03:25:59 PM all 0.13 0.00 0.25 0.00 0.00 0.00 0.00 0.00 99.62 03:26:00 PM all 0.38 0.00 0.38 0.00 0.00 0.13 0.00 0.00 99.12 03:26:01 PM all 2.01 0.00 1.01 0.00 0.00 0.00 0.13 0.00 96.86 03:26:02 PM all 0.38 0.00 0.38 0.00 0.00 0.00 0.00 0.00 99.25 03:26:03 PM all 0.25 0.00 0.25 0.00 0.00 0.13 0.00 0.00 99.37 Average: all 0.63 0.00 0.45 0.00 0.00 0.05 0.03 0.00 98.85
- 顯示所有CPU的使用狀況
# mpstat -P ALL 10 20 //每10秒收集一次數據,共20次 Linux 2.6.32-642.13.1.el6.x86_64 (appstore-nginx-test) 01/03/2020 _x86_64_ (8 CPU) 03:12:59 PM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %idle 03:13:09 PM all 0.41 0.00 0.34 0.03 0.00 0.05 0.04 0.00 99.13 03:13:09 PM 0 1.01 0.00 0.70 0.20 0.00 0.00 0.00 0.00 98.09 03:13:09 PM 1 1.21 0.00 0.71 0.00 0.00 0.40 0.20 0.00 97.47 03:13:09 PM 2 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00 03:13:09 PM 3 0.10 0.00 0.30 0.00 0.00 0.00 0.00 0.00 99.60 03:13:09 PM 4 0.30 0.00 0.30 0.00 0.00 0.00 0.00 0.00 99.40 03:13:09 PM 5 0.50 0.00 0.40 0.00 0.00 0.00 0.00 0.00 99.10 03:13:09 PM 6 0.10 0.00 0.10 0.00 0.00 0.00 0.00 0.00 99.80 03:13:09 PM 7 0.00 0.00 0.20 0.00 0.00 0.00 0.00 0.00 99.80 ....
輸出項說明:
%usr:表示處理用戶進程所使用CPU的百分比
%nice:表示使用nice命令對進程進行降級時CPU的百分比
%sys:表示內核進程使用的CPU百分比
%iowait:表示等待進行I/O所使用的CPU時間百分比
%irq:表示用於處理系統中斷的CPU百分比
%soft:表示用於軟件中斷的CPU百分比
%steal:顯示虛擬機管理器在服務另一個虛擬處理器時虛擬CPU處在非自願等待下花費時間的百分比
%guest:顯示運行虛擬處理器時CPU花費時間的百分比
%idle:顯示CPU的空閑時間百分比
7、uptime命令
uptime命令是一個簡單的獲取系統總共運行時長,以及最近1分鍾、5分鍾、15分鍾的平均負載的工具。uptime命令輸出內容與top命令輸出首行內容一樣,不再贅述。
# uptime 15:40:19 up 203 days, 23:15, 2 users, load average: 0.01, 0.01, 0.00
8、pidstat命令
pidstat命令主要用於監控全部或指定進程占用系統資源的情況。
# pidstat Linux 2.6.32-642.13.1.el6.x86_64 (appstore-nginx-test) 01/03/2020 _x86_64_ (8 CPU) 03:48:26 PM PID %usr %system %guest %CPU CPU Command 03:48:26 PM 1 0.00 0.01 0.00 0.01 5 init 03:48:26 PM 2 0.00 0.00 0.00 0.00 1 kthreadd 03:48:26 PM 3 0.00 0.00 0.00 0.00 0 migration/0 03:48:26 PM 4 0.00 0.00 0.00 0.00 0 ksoftirqd/0 03:48:26 PM 6 0.00 0.00 0.00 0.00 0 watchdog/0 03:48:26 PM 7 0.00 0.00 0.00 0.00 1 migration/1 ....
9、ps ux命令
ps ux 命令列出的是當前服務器的所有進程狀態信息,其中包括了各個進程的cpu使用率。
# ps ux USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.0 19364 1632 ? Ss 2019 18:20 /sbin/init root 2 0.0 0.0 0 0 ? S 2019 0:00 [kthreadd] root 3 0.0 0.0 0 0 ? S 2019 0:46 [migration/0] root 4 0.0 0.0 0 0 ? S 2019 3:13 [ksoftirqd/0] root 5 0.0 0.0 0 0 ? S 2019 0:00 [stopper/0] root 6 0.0 0.0 0 0 ? S 2019 0:39 [watchdog/0] root 7 0.0 0.0 0 0 ? S 2019 0:35 [migration/1] ....
參考:
https://www.cnblogs.com/shirley-bhu/p/8743377.html
https://www.cnblogs.com/gongchixin/articles/7998054.html
https://www.cnblogs.com/aresxin/p/9152127.html
https://blog.csdn.net/yuanchunsi/article/details/79295801
https://www.cnblogs.com/arnoldlu/p/9462221.html
