Linux8.1 查看系統負載
阿新 • • 發佈:2017-11-26
eth %u iowait b數 空閑 百分比 物理內存 top命令 殺死
w命令
使用w查看系統負載
#load average 一分鐘 五分鐘 十五分鐘 時間段內系統的負載值,單位時間段內,使用CPU的活動的進程數量 #數值為系統邏輯cpu(並非物理cpu)數量為最理想狀態 [root@chyuanliuNJ ~]# w 19:54:39 up 2 days, 11:28, 4 users, load average: 0.00, 0.01, 0.05 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT root pts/0 49.77.222.241 19:10 44:39 0.00s 0.00s -bash root pts/1 49.77.222.241 19:47 7:11 0.00s 0.00s -bash root pts/2 49.77.222.241 19:39 15:27 0.00s 0.00s -bash root pts/3 49.77.222.241 19:54 7.00s 0.00s 0.00s w [root@chyuanliuNJ ~]# date Sat Nov 25 19:55:10 CST 2017 #每顆物理cpu上有很多邏輯cpu,1顆物理CPU上可以有兩核,每核上有好多邏輯CPU #查看cpu數量,processor為0意味著1顆邏輯cpu,所以為1的時候是最理想狀態 [root@chyuanliuNJ ~]# cat /proc/cpuinfo processor : 0 vendor_id : GenuineIntel cpu family : 6 model : 79 model name : Intel(R) Xeon(R) CPU E5-2682 v4 @ 2.50GHz ... ... #w命令第一行與uptime一樣 [root@chyuanliuNJ ~]# uptime 20:06:05 up 2 days, 11:39, 5 users, load average: 0.00, 0.03, 0.05
vmstat命令
例如通過w命令得知cpu負載過高,可以通過vmstat得知哪些進程占用cpu,查看系統瓶頸。
[root@chyuanliuNJ ~]# vmstat procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 4 0 0 78048 127452 437872 0 0 2 10 12 196 1 1 98 0 0 #vmstat 數字 動態多少秒顯示一次 [root@chyuanliuNJ ~]# vmstat 3 procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 4 0 0 78112 127456 437900 0 0 2 10 12 197 1 1 98 0 0 0 0 0 77740 127460 437908 0 0 0 24 1281 2660 1 1 97 0 0 0 0 0 77740 127460 437916 0 0 0 9 1268 2657 0 1 99 0 0 ^C #每三秒顯示一次,顯示4次結束 [root@chyuanliuNJ ~]# vmstat 3 4 procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 4 0 0 77732 127476 438056 0 0 2 10 13 198 1 1 98 0 0 1 0 0 77732 127476 438056 0 0 0 8 1235 2611 1 1 98 0 0 0 0 0 77764 127476 438088 0 0 0 0 1180 2563 1 0 99 0 0 0 0 0 77392 127476 438092 0 0 0 0 1191 2582 1 0 99 0 0 # r 為run簡寫,表示有多少進程處在進行狀態,等待使用cpu的進程也算在內 # b 進程等待的數量block # swap 當內存不太夠的時候,系統可以把內存裏面一部分數據臨時放到swap裏,數量在持續變換說明內存不夠用了 # free buff cache #si so 由swap決定,si有多少kb數據從swap進入到內存中,so 就是從內存出來的數據 #bi bo 與磁盤有關系,從磁盤出來進入到內存的數據為bi,bo為寫入到磁盤數據 #us 系統上跑的服務占用cpu的比重,會在us中顯示。用戶態資源占用cpu百分比 #sy 系統本身進程服務占用cpu百分比 #id 空閑, us + sy + id =100% #wa 等待,有多少個進程在等待cpu
top命令
查看進程使用資源情況
#三秒更新一次, zombie是主進程已經終止而其子進程還存在叫僵屍進程 #st被偷走的cpu百分比 #物理內存 #交換分區 #默認按照cpu使用百分比排序。res物理內存大小kb,按下M鍵可以安裝內存使用排序,按P鍵回到cpu排序 #按下數字1列出所有單個cpu排序 #可以通過PID殺死進程, kill pid [root@chyuanliuNJ ~]# top top - 20:33:35 up 2 days, 12:07, 6 users, load average: 0.00, 0.09, 0.13 Tasks: 83 total, 1 running, 82 sleeping, 0 stopped, 0 zombie %Cpu(s): 0.3 us, 0.3 sy, 0.0 ni, 99.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem : 1016396 total, 74024 free, 375752 used, 566620 buff/cache KiB Swap: 0 total, 0 free, 0 used. 421600 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1017 root 20 0 1006112 15304 10308 S 0.3 1.5 23:30.54 staragent-c+ 1047 root 20 0 130484 12840 8848 S 0.3 1.3 3:50.11 AliYunDun 1 root 20 0 43204 3596 2412 S 0.0 0.4 0:04.26 systemd 2 root 20 0 0 0 0 S 0.0 0.0 0:00.01 kthreadd 3 root 20 0 0 0 0 S 0.0 0.0 0:02.72 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:00.00 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 0:10.18 rcu_sched 10 root rt 0 0 0 0 S 0.0 0.0 0:00.51 watchdog/0 12 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kdevtmpfs 13 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 netns 14 root 20 0 0 0 0 S 0.0 0.0 0:00.07 khungtaskd 15 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 writeback 16 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kintegrityd 17 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 bioset 18 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kblockd #可以查看具體的命令top -c [root@chyuanliuNJ ~]# top -c top - 20:46:40 up 2 days, 12:20, 7 users, load average: 0.00, 0.01, 0.07 Tasks: 85 total, 1 running, 84 sleeping, 0 stopped, 0 zombie %Cpu(s): 1.0 us, 0.7 sy, 0.0 ni, 98.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem : 1016396 total, 70888 free, 378232 used, 567276 buff/cache KiB Swap: 0 total, 0 free, 0 used. 418940 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1017 root 20 0 1006112 15304 10308 S 1.0 1.5 23:35.66 staragent-core 1516 root 20 0 2070408 69488 11024 S 0.7 6.8 12:39.07 /usr/local/cloudmoni+ 1047 root 20 0 130484 12840 8848 S 0.3 1.3 3:50.87 /usr/local/aegis/aeg+ 11782 root 20 0 0 0 0 S 0.3 0.0 0:00.01 [kworker/0:2] 11909 root 20 0 157600 2216 1616 R 0.3 0.2 0:00.01 top -c 1 root 20 0 43204 3596 2412 S 0.0 0.4 0:04.27 /usr/lib/systemd/sys+ 2 root 20 0 0 0 0 S 0.0 0.0 0:00.01 [kthreadd] 3 root 20 0 0 0 0 S 0.0 0.0 0:02.73 [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:00.00 [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 0:10.21 [rcu_sched] 10 root rt 0 0 0 0 S 0.0 0.0 0:00.51 [watchdog/0] 12 root 20 0 0 0 0 S 0.0 0.0 0:00.00 [kdevtmpfs] 13 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 [netns] 14 root 20 0 0 0 0 S 0.0 0.0 0:00.07 [khungtaskd] 15 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 [writeback] #top -bn1 靜態一次性顯示,適合寫腳本使用
sar命令
全面分析系統狀態命令,常用於流量監控
#如果sar命令不加任何選項,會自動調用系統保留的歷史文件 #每10分鐘會把系統狀態過濾一遍,保存在文件裏, [root@chyuanliuNJ ~]# sar Cannot open /var/log/sa/sa25: No such file or directory #sar歷史文件所在目錄 [root@chyuanliuNJ ~]# ls /var/log/sa [root@chyuanliuNJ ~]# #網卡流量,每一秒顯示一次,顯示三次 [root@chyuanliuNJ ~]# sar -n DEV 1 3 Linux 3.10.0-514.26.2.el7.x86_64 (chyuanliuNJ) 11/25/2017 _x86_64_ (1 CPU) 08:57:29 PM IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s 08:57:30 PM eth0 1.01 1.01 0.05 0.12 0.00 0.00 0.00 08:57:30 PM lo 3.03 3.03 0.18 0.18 0.00 0.00 0.00 08:57:30 PM IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s 08:57:31 PM eth0 0.00 2.00 0.00 0.56 0.00 0.00 0.00 08:57:31 PM lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 08:57:31 PM IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s 08:57:32 PM eth0 0.00 1.01 0.00 0.38 0.00 0.00 0.00 08:57:32 PM lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 Average: IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s Average: eth0 0.34 1.34 0.02 0.35 0.00 0.00 0.00 Average: lo 1.01 1.01 0.06 0.06 0.00 0.00 0.00 #rxpck接受到的數據包 txpck發送 rxkB接受到的數據量 txkB發送 #數據包幾千還是比較正常,上萬就不太正常。 #查看歷史數據,保存一個月的數據,25就是25號的數據 [root@chyuanliuNJ ~]# sar -f /var/log/sa/sa25 Linux 3.10.0-514.26.2.el7.x86_64 (chyuanliuNJ) 11/25/2017 _x86_64_ (1 CPU) # -q 系統負載,經常查看歷史數據,不加數字 [root@chyuanliuNJ ~]# sar -q 1 4 Linux 3.10.0-514.26.2.el7.x86_64 (chyuanliuNJ) 11/25/2017 _x86_64_ (1 CPU) 09:09:04 PM runq-sz plist-sz ldavg-1 ldavg-5 ldavg-15 blocked 09:09:05 PM 1 409 0.03 0.05 0.07 0 09:09:06 PM 1 409 0.03 0.05 0.07 0 09:09:07 PM 3 409 0.03 0.05 0.07 0 09:09:08 PM 1 409 0.03 0.05 0.07 0 Average: 2 409 0.03 0.05 0.07 0 # -b 磁盤讀寫 [root@chyuanliuNJ ~]# sar -b 1 4 Linux 3.10.0-514.26.2.el7.x86_64 (chyuanliuNJ) 11/25/2017 _x86_64_ (1 CPU) 09:09:57 PM tps rtps wtps bread/s bwrtn/s 09:09:58 PM 0.00 0.00 0.00 0.00 0.00 09:09:59 PM 0.00 0.00 0.00 0.00 0.00 09:10:00 PM 0.00 0.00 0.00 0.00 0.00 09:10:01 PM 1.98 0.00 1.98 0.00 47.52 Average: 0.50 0.00 0.50 0.00 12.03
/var/log/sa/目錄下會有兩種文件記錄數據,一種sa25另一種sar25會在26號生成,sa25不能使用cat命令只能sar -f 查看,sar25可以使用cat命令查看
nload命令
網卡名字在左上角。動態顯示網卡流量
Device eth0 [172.16.252.69] (1/2): ================================================================================ Incoming: Curr: 856.00 Bit/s Avg: 2.05 kBit/s Min: 0.00 Bit/s Max: 10.12 kBit/s Ttl: 102.76 MByte Outgoing: Curr: 8.08 kBit/s Avg: 13.55 kBit/s Min: 4.34 kBit/s Max: 70.05 kBit/s Ttl: 206.95 MByte
監控IO性能
監控磁盤狀態命令
#iostat的數據通過sar -b也能看到 # iostat -x中的 %util很重要 [root@chyuanliuNJ ~]# iostat -x Linux 3.10.0-514.26.2.el7.x86_64 (chyuanliuNJ) 11/25/2017 _x86_64_ (1 CPU) avg-cpu: %user %nice %system %iowait %steal %idle 1.01 0.00 0.57 0.03 0.00 98.39 Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util vda 0.00 1.13 0.06 0.94 2.04 9.97 24.02 0.00 2.02 3.22 1.95 0.43 0.04 %util:一秒中有百分之多少的時間用於I/O操作,或者說一秒中有多少時間I/O隊列是非空的。即delta(usr)/s/1000(因為use的單位為毫秒) 如果%util接近100%,說明產生的I/O請求太多,I/O系統已經滿負載,該磁盤可能存在瓶頸。 %util:一秒中有百分之多少的時間用於I/O操作,或者說一秒中有多少時間I/O隊列是非空的 svctm:平均每次設備I/O操作的服務時間 await:平均每次設備I/O操作的等待時間 avgqu-sz:平均I/O隊列長度 如果%util接近100%,表明I/O請求太多,I/O系統已經滿負荷,磁盤可能存在瓶頸,一般%util大於70%,I/O壓力就比較大,讀取速度有較多的wait。 同時可以結合vmstat查看查看b參數(等待資源的進程數)和wa參數(I/O等待所占用的CPU時間的百分比,高過30%時I/O壓力高) vmstat -d 5 await的大小一般取決於服務時間(svctm)以及I/O隊列的長度和I/O請求的發出模式。如果svctm比較接近await,說明I/O幾乎沒有等待時間;如果 await遠大於svctm,說明I/O隊列太長,應用得到的響應時間變慢。
查看哪個進程使用IO比較頻繁
#類似top命令 [root@chyuanliuNJ ~]# iotop Total DISK READ : 0.00 B/s | Total DISK WRITE : 0.00 B/s Actual DISK READ: 0.00 B/s | Actual DISK WRITE: 0.00 B/s TID PRIO USER DISK READ DISK WRITE SWAPIN IO> COMMAND 1 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % systemd -~rialize 21 2 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kthreadd] 3 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [ksoftirqd/0] 5 be/0 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kworker/0:0H] 7 rt/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [migration/0] 8 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [rcu_bh] 9 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [rcu_sched] 10 rt/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [watchdog/0] 12 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kdevtmpfs] 13 be/0 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [netns] 14 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [khungtaskd] 15 be/0 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [writeback] ... ...
Linux8.1 查看系統負載