監控磁盤狀態,內存狀態,進程,網絡狀態

監控io性能

  • iostat命令,能夠直接查看磁盤的使用狀況
[root@localhost ~]# iostat
Linux 3.10.0-123.el7.x86_64 (localhost.localdomain) 	2018年07月12日 	_x86_64_	(4 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.18    0.00    1.14    1.90    0.00   96.78

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sdb               1.04         4.16         0.00       1564          0
sda              14.70       284.06        14.51     106842       5459
dm-0              0.24         0.97         0.00        364          0
  • iostat 1 10動態顯示磁盤使用狀況,隔一秒輸出一次,一共輸出10次
  • iostat -x 比較全面的顯示磁盤使用狀況,其中%util是CPU等待硬盤讀寫數據的時間佔比,如該數據過大則說明磁盤的讀寫出現了問題。
[root@localhost ~]# iostat -x
Linux 3.10.0-123.el7.x86_64 (localhost.localdomain) 	2018年07月12日 	_x86_64_	(4 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.12    0.00    0.81    1.26    0.00   97.81

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sdb               0.00     0.00    0.69    0.00     2.78     0.00     8.00     0.00    5.73    5.73    0.00   5.21   0.36
sda               1.06     0.03    7.64    2.20   189.77     9.73    40.57     0.11   11.28   13.02    5.24   4.85   4.77
dm-0              0.00     0.00    0.16    0.00     0.65     0.00     8.00     0.00    1.99    1.99    0.00   1.99   0.03
  • iotop 該命令會把讀寫磁盤的進程動態的顯示出來 在使用LINUX時常常會遇到系統IO佔用很高,系統IO佔用能夠使用iostat -x 1查看,可是查看哪一個進程佔用的磁盤IO負載高,就能夠使用iotop工具了。
[root@localhost ~]# 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 --switched-root --system --deserialize 23
     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]
     6 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [kworker/u256:0]
     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 % [rcuob/0]
    10 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [rcuob/1]
    11 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [rcuob/2]
    12 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [rcuob/3]
    13 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [rcuob/4]
    14 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [rcuob/5]
    15 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [rcuob/6]

監控內存使用狀況

  • free命令 查看內存的使用狀況。默認單位是kb
[root@localhost ~]# free
             total       used       free     shared    buffers     cached
Mem:       3869044     481724    3387320       8692        692     218860
-/+ buffers/cache:     262172    3606872
Swap:      2047996          0    2047996

能夠看到物理內存的使用狀況和swap分區的使用狀況。若是swap分區使用較多了表示須要增長內存了。ios

  • free -h 自適應單位輸出數值
  • free -m 以兆爲單位輸出數值

顯示內容,緩存

  • total:總內存大小 ;
  • used:已使用內存大小
  • free:空閒內存大小
  • shared:當前已廢棄不用內存大小
  • buffers:緩衝空間大小
  • cached:緩存空間大小
  • available 大小是buff/cache未使用的部分+free的大小

監控進程

ps命令

  • ps -aux 顯示進程狀況,這是靜態輸出的。
  • ps -aux |grep sshd 查看sshd進程是否開啓
  • 能夠利用PID來殺死進程,kill pid號就能夠實現
  • ls -l /proc/pid號,能夠查看進程實在哪裏啓動的。

查看網絡狀態

  • netstat 列出端口信息
  • netstat -lnp 列出系統監聽端口
  • netstat -an 查看系統的網絡鏈接情況
  • netstat -lntp 列出監聽端口,只看tcp的,不包括socket
  • ss -an 跟netstat -an 做用同樣
[root@localhost ~]# netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      2342/master         
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1340/sshd           
tcp6       0      0 ::1:25                  :::*                    LISTEN      2342/master         
tcp6       0      0 :::22                   :::*                    LISTEN      1340/sshd

Linux抓包工具

  • tcpdump 抓包,yum install -y tcpdump先安裝該工具
  • tcpdump -nn -i ,該指令中-nn是爲了把主機名和端口都使用數字顯示出來,主機名會顯示成ip ,端口直接顯示出端口號;-i是指定網卡(抓取哪一個網卡的包)
  • tcpdump -c 能夠指定抓包的數量
  • tcpdump -w 能夠將抓包的數據流向內容寫入到一個文件中
  • tcpdump -r 文件名 能夠查看寫入數據流向內容的文件
[root@localhost ~]# tcpdump -nn -c 5 -i eno16777736
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eno16777736, link-type EN10MB (Ethernet), capture size 262144 bytes
16:25:07.903212 IP 192.168.254.130.22 > 192.168.254.1.55550: Flags [P.], seq 1722853797:1722854009, ack 913713024, win 159, length 212
16:25:07.903638 IP 192.168.254.1.55550 > 192.168.254.130.22: Flags [.], ack 212, win 254, length 0
16:25:07.903830 IP 192.168.254.130.22 > 192.168.254.1.55550: Flags [P.], seq 212:408, ack 1, win 159, length 196
16:25:07.939544 IP 192.168.254.130.22 > 192.168.254.1.55550: Flags [P.], seq 408:684, ack 1, win 159, length 276
16:25:07.939730 IP 192.168.254.1.55550 > 192.168.254.130.22: Flags [.], ack 684, win 252, length 0
5 packets captured
6 packets received by filter
0 packets dropped by kernel
相關文章
相關標籤/搜索