監控io性能、free命令、 ps命令、查看網絡狀態、linux下抓包

iostat查看硬盤詳細信息:

Linux系統出現了性能問題,通常咱們能夠經過top.iostat,vmstat等命令來查看初步定位問題。其中iostat能夠給咱們提供豐富的IO狀態數據linux

[root@glinux-01 ~]# iostat
Linux 3.10.0-693.el7.x86_64 (glinux-01) 	2018年03月15日 	_x86_64_	(1 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.19    0.00    0.36    0.06    0.00   99.39

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda               0.66        12.31        12.51     202336     205754
sdb               0.02         0.22         0.00       3580          0
dm-0              0.00         0.06         0.00       1036          0

iostat -x ios

[root@glinux-01 ~]# iostat -x 
Linux 3.10.0-693.el7.x86_64 (glinux-01) 	2018年03月15日 	_x86_64_	(1 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.18    0.00    0.36    0.06    0.00   99.40

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await 

r_await w_await  svctm  %util
sda               0.00     0.03    0.37    0.27    11.74    12.11    73.93     0.01   15.79   
10.55   22.91   2.96   0.19
sdb               0.00     0.00    0.01    0.00     0.21     0.00    28.99     0.00    0.43    

0.43    0.00   0.28   0.00
dm-0              0.00     0.00    0.00    0.00     0.06     0.00    48.19     0.00    0.28    

0.28    0.00   0.23   0.00

 參數含義(重要參數%util)網絡

rrqm/s:每秒進行merge的讀操做數目。即delta(rmerge)/s 
wrqm/s:每秒進行merge的寫操做數目。即delta(wmerge)/s 
r/s:每秒完成的讀I/O設備次數。即delta(rio)/s 
w/s:每秒完成的寫I/0設備次數。即delta(wio)/s 
rsec/s:每秒讀扇區數。即delta(rsect)/s 
wsec/s:每秒寫扇區數。即delta(wsect)/s 
rKB/s:每秒讀K字節數。是rsec/s的一半,由於每扇區大小爲512字節 

wKB/s:每秒寫K字節數。是wsec/s的一半 
avgrq-sz:平均每次設備I/O操做的數據大小(扇區)。即delta(rsect+wsect)/delta(rio+wio) 
avgqu-sz:平均I/O隊列長度。即delta(aveq)/s/1000(由於aveq的單位爲毫秒) 
await:平均每次設備I/O操做的等待時間(毫秒)。即delta(ruse+wuse)/delta(rio+wio) 
svctm:平均每次設備I/O操做的服務時間(毫秒)。即delta(use)/delta(rio+wio) 
%util:一秒中有百分之多少的時間用於I/O操做,或者說一秒中有多少時間I/O隊列是非空的
。即delta(usr)/s/1000(由於use的單位爲毫秒) 

若是%util接近100%,說明產生的I/O請求太多,I/O系統已經滿負載,該磁盤可能存在瓶頸。

當發現磁盤io很忙,想查看哪一個進程頻繁讀寫,能夠用iotop多線程

(如未安裝,先yum install -y intop)tcp

IO從大到小排列性能

free 查看內存使用狀況

單位kb(free爲0了,就是內存有問題了)網站

[root@glinux-01 ~]# free
              total        used        free      shared  buff/cache   available
Mem:         750104      126872      478088        5268      145144      474424
Swap:       2097148           0     2097148

total 總共內存spa

used 已使用線程

free  剩餘code

buff 緩衝cache  快取  (系統預留一部份內存給buff/cache)

available  剩餘的+buff/cache沒用完的

數據(磁盤)---內存(cache)----cpu         讀數據read cache

cpu(處理過的數據)---內存(buffer)----磁盤 寫數據 write buff

free -m 以M爲單位顯示內存

[root@glinux-01 ~]# free -m
              total        used        free      shared  buff/cache   available
Mem:            732         123         466           5         141         463
Swap:          2047           0        2047

ps命令(查看系統進程使用情況)

ps aux 靜態查看。 top是動態查看

[root@g_linux01 ~]# ps aux
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.6 128164  6824 ?        Ss   3月18   0:13 /usr/lib/systemd/systemd --switched-root --system --deserialize 21
root         2  0.0  0.0      0     0 ?        S    3月18   0:00 [kthreadd]
root         3  0.0  0.0      0     0 ?        S    3月18   0:00 [ksoftirqd/0]
root         5  0.0  0.0      0     0 ?        S<   3月18   0:00 [kworker/0:0H]
root         7  0.0  0.0      0     0 ?        S    3月18   0:00 [migration/0]
root         8  0.0  0.0      0     0 ?        S    3月18   0:00 [rcu_bh]
root         9  0.0  0.0      0     0 ?        R    3月18   0:02 [rcu_sched]
root        10  0.0  0.0      0     0 ?        S    3月18   0:01 [watchdog/0]
root        12  0.0  0.0      0     0 ?        S    3月18   0:00 [kdevtmpfs
  • %cpu  cpu使用百分比
  • %mem 內存使用百分比
  • vsz 虛擬內存使用百分比
  • rss 物理內存
  • stat  狀態說明以下
  1. D 不能中斷的進程
  2. R run狀態的進程
  3. S sleep狀態的進程
  4. T暫停的進程
  5. Z殭屍進程
  6. <高優先級進程
  7. N低優先級進程
  8. L內存中被鎖了內存分頁
  9. s主進程
  10. l多線程進程
  11. +前臺進程

 

經過pid能夠殺死進程,也可查看進程目錄  ls -l /proc/12/  

用法相對較多的是查看某個進程使用情況

查看網絡狀態netstat

netstat -lnp查看監聽端口

查看連接情況,ESTABLISHED正在鏈接的進程

linux 抓包

使用tcpdump命令。如未安裝先yum install -y tcpdump

tcpdump -nn -i ens33(-i 指定網卡的名字)

-nn:除了-n的做用外,還把端口顯示爲數值,不然顯示端口服務名。
19:56:22.470376 IP 192.168.244.128.22 > 192.168.244.1.50832: 
Flags [P.], seq 4910988:4911280, ack 729, win 296, length 292
系統時間 來源主機.端口 > 目標主機.端口 數據包參數

 指定抓包的端口號

[root@glinux-01 ~]# tcpdump -nn  -i ens33 port 22

-c 指定抓取包的數量 -w將輸出寫入文件中

tcpdump -nn -i ens33 -c 10 -w /tmp/1.cap

查看1.cap文件
[root@glinux-01 ~]# tcpdump -r /tmp/1.cap

yum install -y wireshark 

tshark 命令 查看網卡 什麼ip訪問的什麼網站連接

相關文章
相關標籤/搜索