此命令用於查看系統平均負載。html
$ cat /proc/loadavg 0.08 0.06 0.10 1/442 8347
前三項分別是最近1分鐘、5分鐘和15分鐘的系統平均負載。系統平均負載爲在特定時間間隔內運行隊列中的平均進程數,包括正在CPU上運行或者等待運行的進程。
第四項,分子是正在運行的進程數,分母是進程總數。
最後一項是最近運行的進程ID號。ios
Top命令是最經常使用的查看系統資源使用狀況的工具,能夠查看CPU、內存等資源的使用狀況。nginx
$ 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時間百分比。
服務器
vmstat是Virtual Meomory Statistics(虛擬內存統計)的縮寫,可對操做系統的虛擬內存、進程、CPU活動進行監控,是對系統的總體狀況進行統計。app
$ 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時間百分比工具
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平均使用率,與前述命令相似:spa
%user:CPU處在用戶模式下的時間百分比。操作系統
%nice:CPU處在帶NICE值的用戶模式下的時間百分比。.net
%system:CPU處在系統模式下的時間百分比。
%iowait:CPU等待輸入輸出完成時間的百分比。
%steal:管理程序維護另外一個虛擬處理器時,虛擬CPU的無心識等待時間百分比。
%idle:CPU空閒時間百分比。
sar(System Activity Reporter,系統活動狀況報告)是目前 Linux 上最爲全面的系統性能分析工具之一,能夠從多方面對系統的活動進行報告,包括:文件的讀寫狀況、系統調用的使用狀況、磁盤I/O、CPU效率、內存使用情況、進程活動及IPC有關的活動等。咱們如今只關注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平均負載
# 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
# 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的空閒時間百分比
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
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 ....
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