Linux系統資源經常使用監控工具

Linux系統維護的主要工做就是保證系統和應用的穩定。而若是想保證穩定就必須時刻了解系統的狀態;cpu、內存、磁盤、網絡和各類應用程序的運行於佔用資源的狀態等。同時掌握了系統資源的狀態信息;也能夠對系統進行優化,以發揮更好的性能。
html

對於這些信息的查看;須要一些工具可以及時的查看和分析;下面就對Linux系統資源監控經常使用的工具進行簡單的介紹:node

一、sar(System Activity Recorder)python

sar能夠顯示CPU 使用率、內存頁數據、網絡 I/O 和傳輸統計、進程建立活動和磁盤設備的活動詳情mysql

#  yum -y install sysstat         安裝sar
# sar -h
Usage: sar [ options ] [ <interval> [ <count> ] ]
Main options and reports:
	-b	I/O and transfer rate statistics
	-B	Paging statistics
	-d	Block device statistics
	-I { <int> | SUM | ALL | XALL }
		Interrupts statistics
	-m	Power management statistics
	-n { <keyword> [,...] | ALL }
		Network statistics
		Keywords are:
		DEV	Network interfaces
		EDEV	Network interfaces (errors)
.....
詳細請查看幫助信息

測試:linux

# sar -b -r -u 1        爲了方便;這裏一次性顯示三項
Linux 2.6.32-431.el6.x86_64 (node2.soul.com) 	05/25/2014 	_x86_64_	(1 CPU)
#cpu信息
09:07:24 PM     CPU     %user     %nice   %system   %iowait    %steal     %idle
09:07:25 PM     all      0.00      0.00      2.02      0.00      0.00     97.98
#I/O信息
09:07:24 PM       tps      rtps      wtps   bread/s   bwrtn/s
09:07:25 PM      0.00      0.00      0.00      0.00      0.00
#內存信息
09:07:24 PM kbmemfree kbmemused  %memused kbbuffers  kbcached  kbcommit   %commit
09:07:25 PM    764828    247524     24.45     11772    102232   1142588     36.75

#對於這其中每項的含義就不作一一解釋;基本表示的很清楚;大都是詞面意思。

sar還記錄天天的cpu信息
ios

# sar -f /var/log/sa/sa25    sa25表示本月25號的信息
Linux 2.6.32-431.el6.x86_64 (node2.soul.com) 	05/25/2014 	_x86_64_	(1 CPU)

12:00:01 AM     CPU     %user     %nice   %system   %iowait    %steal     %idle
12:10:01 AM     all      0.02      0.00      0.10      0.08      0.00     99.80
12:20:01 AM     all      0.01      0.00      0.10      0.06      0.00     99.83
....
03:20:01 PM     CPU     %user     %nice   %system   %iowait    %steal     %idle
03:30:01 PM     all      7.38      0.00      0.53      0.31      0.00     91.77
03:40:02 PM     all     23.89      0.00      0.31      0.04      0.00     75.76
03:50:01 PM     all     21.84      0.00      2.37      0.32      0.00     75.46
04:00:04 PM     all     97.14      0.00      2.86      0.00      0.00      0.00
04:10:01 PM     all     47.26      0.00      0.41      0.17      0.00     52.16
04:20:01 PM     all      0.01      0.00      0.09      0.98      0.00     98.92
Average:        all      8.23      0.00      0.43      0.24      0.00     91.09
#從上述信息能夠看出下午3:20-4:10以前CPU佔用率很高
#每一個文件最後一行都是統計的平均數據。

顯示塊設備的信息
web

# sar -d
Linux 2.6.32-431.el6.x86_64 (node2.soul.com) 	05/25/2014 	_x86_64_	(1 CPU)

12:00:01 AM       DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
12:10:01 AM   dev11-0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
12:10:01 AM    dev8-0      0.20      0.27      2.11     12.07      0.00      5.64      5.19      0.10
12:10:01 AM   dev8-16      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
12:10:01 AM  dev253-0      0.00      0.01      0.00      8.00      0.00      8.00      8.00      0.00

網絡相關的
sql

# sar -n NFS | more
Linux 2.6.32-431.el6.x86_64 (node2.soul.com) 	05/25/2014 	_x86_64_	(1 CPU)
...
08:50:01 PM      0.02      0.00      0.00      0.00      0.00      0.00
09:00:01 PM      0.02      0.00      0.00      0.00      0.00      0.00
09:10:01 PM      0.01      0.02      0.00      0.00      0.00      0.00
09:20:01 PM      0.00      0.01      0.00      0.00      0.00      0.00
Average:         0.02      0.00      0.00      0.00      0.00      0.00

# sar -n DEV | more
Linux 2.6.32-431.el6.x86_64 (node2.soul.com) 	05/25/2014 	_x86_64_	(1 CPU)

12:00:01 AM     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
12:10:01 AM        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00
...
Average:           lo      0.92      0.92      1.47      1.47      0.00      0.00      0.00
Average:         eth0    627.52     19.67    142.99      2.63      0.00      0.00      0.00
Average:       virbr0      0.00      0.00      0.00      0.00      0.00      0.00      0.00
Average:    virbr0-nic      0.00      0.00      0.00      0.00      0.00      0.00      0.00

詳細查閱幫助信息便可。apache

-------------------------------------------------------------------------------------------centos

二、Htop

Htop是一個Linux實時監控的應用程序。它顯示了運行的進程的完整列表和正在運行的任務。能夠直接鼠標點擊操做。能夠上下左右的拉動菜單查看完整的信息。

系統通常默認沒有安裝;須要安裝該工具。

#  yum -y install htop
# htop

wKioL1OB80CzP9zVAAOx1j7stzc440.jpg

能夠看到詳細的CPU和內存等信息;下方定義的F1-F10快捷鍵。也能夠直接鼠標點擊。

wKiom1OB9BzCEYqMAAE3ea0zEiw257.jpg

按t顯示樹狀視圖

wKiom1OB9hrgGi5DAAGIrFlwHlY247.jpg

信息顯示和幫助也都很信息;一目瞭然。直接按"/"能夠進行搜索關鍵字。

-------------------------------------------------------------------------------------------

三、dstat

dstat是一個全能系統信息統計工具。與sysstat相比,dstat擁有一個彩色的界面, 在手動觀察性能情況時, 數據比較顯眼容易觀察;並且dstat支持即時刷新, 譬如輸入dstat 3, 即每三秒收集一次, 但最新的數據都會每秒刷新顯示。和sysstat相同的是, dstat也能夠收集指定的性能資源, 譬如 dstat -c 即顯示CPU的使用狀況。

# dstat -h            查看幫助信息
Usage: dstat [-afv] [options..] [delay [count]]
Versatile tool for generating system resource statistics
Dstat options:
  -c, --cpu              enable cpu stats            
     -C 0,3,total           include cpu0, cpu3 and total
  -d, --disk             enable disk stats
     -D total,hda           include hda and total
  -g, --page             enable page stats
  -i, --int              enable interrupt stats
     -I 5,eth2              include int5 and interrupt used by eth2
  -l, --load             enable load stats
  -m, --mem              enable memory stats
  -n, --net              enable network stats
     -N eth1,total          include eth1 and total

查看cpu信息

# dstat -c 1 5        顯示cpu狀態;每1秒刷新1次,共5次
----total-cpu-usage----
usr sys idl wai hiq siq
  8   0  92   0   0   0
  0   0 100   0   0   0
  0   0 100   0   0   0
  0   1  99   0   0   0
  0   0 100   0   0   0
  0   0 100   0   0   0

同時顯示多個狀態信息

wKiom1OB-E_imaiSAAHTzbZAPMY969.jpg

能夠看出每項都有顏色標記出來。顯示很清楚。

還支持插件監控

# dstat --list
internal:
	aio, cpu, cpu24, disk, disk24, disk24old, epoch, fs, int, int24, io, ipc, load, lock, mem, net, page, 
	page24, proc, raw, socket, swap, swapold, sys, tcp, time, udp, unix, vm
/usr/share/dstat:
	battery, battery-remain, cpufreq, dbus, disk-util, fan, freespace, gpfs, gpfs-ops, helloworld, 
	innodb-buffer, innodb-io, innodb-ops, lustre, memcache-hits, mysql-io, mysql-keys, mysql5-cmds, 
	mysql5-conn, mysql5-io, mysql5-keys, net-packets, nfs3, nfs3-ops, nfsd3, nfsd3-ops, ntp, postfix, 
	power, proc-count, rpc, rpcd, sendmail, snooze, thermal, top-bio, top-cpu, top-cputime, 
	top-cputime-avg, top-io, top-latency, top-latency-avg, top-mem, top-oom, utmp, vm-memctl, vmk-hba, 
	vmk-int, vmk-nic, vz-cpu, vz-io, vz-ubc, wifi

顯示最佔用cpu進程

# dstat --top-cpu
-most-expensive-
  cpu process   
mysqld       0.1
                
mmm_agentd   4.0
sshd: root@pt1.0
kblockd/0    1.0
events/0     1.0

佔用內存最多的進程

# dstat --top-mem
--most-expensive-
  memory process 
mysqld      37.0M
mysqld      37.0M
mysqld      37.0M
mysqld      37.0M

具體須要慢慢了解。

-------------------------------------------------------------------------------------------

四、Glances

Glances 是一個由 Python 編寫,使用 psutil 庫來從系統抓取信息的基於 curses 開發的跨平臺命令行系統監視工具。 經過 Glances,咱們能夠監視 CPU,平均負載,內存,網絡流量,磁盤 I/O,其餘處理器 和 文件系統 空間的利用狀況。

Glances 是一個用來監視 GNU/Linux 和 FreeBSD 操做系統的 GPL 受權的自由軟件。

Glances 同時也提供了不少實用的選項。 其中咱們可以在配置文件見到的一項主要的功能就是設置關鍵值及相應的標籤 (careful[當心], warning[警告] 和 critical[嚴重]), 而後她會自動幫咱們用不一樣顏色標出系統達到某個瓶頸的信息。

Glances主要功能:

  • CPU 信息 (用戶的相關應用, 系統核心程序和空閒程序)

  • 總內存信息,包括了物理內存,交換空間和空閒內存等等

  • 以前的 1 分鐘、5 分鐘和 15 分鐘平均的 CPU 負載

  • 網絡連接的下行和上行速度

  • 處理器總數,以及其活動狀態

  • 硬盤 I/O 相關(讀寫)速度詳情

  • 當前掛載設備的磁盤使用狀況

  • 高 CPU 和內存使用的進程名,和相關應用的位置

  • 在底部顯示當前日期和時間

  • 將消耗最高系統資源的進程用紅色標出

# glances

wKiom1OB_IKB5EfnAAMjsrsrQX8574.jpg

能夠看出顯示cpu/Memroy/network/disk I/O等的相關信息。

wKioL1OB_N-BupaDAAKEPCnD5Is791.jpg

幫助信息。

同時還能夠遠程監控:

在服務器端啓動
# glances -s -B 192.168.0.113
Define the password for the Glances server
Password: 
Password (confirm): 
Glances server is running on 192.168.0.113:61209

客戶端鏈接:

wKiom1OB_mTDTY3ZAAIJPseK3wE037.jpg


同時還能夠在web頁面監控:

#安裝jinja
# yum -y install python-jinja2
# glances -o HTML -f /var/www/html/     -o:輸出格式;HTML/CSS,-f:指定文件目錄

wKiom1OCAhDjJbo0AAFIxO-0Uqs763.jpg

-------------------------------------------------------------------------------------------

五、vmstat

Linux 的 VmStat 命令用於顯示虛擬內存、內核線程、磁盤、系統進程、I/O 塊、中斷、CPU 活動 等的統計信息。缺省狀況下, vmstat 命令在 Linux 系統下不可用,你須要安裝一個包含了 vmstat 程序的 sysstat 軟件包。命令格式的常見用法是:

# vmstat -h
usage: vmstat [-V] [-n] [delay [count]]
              -V prints version.
              -n causes the headers not to be reprinted regularly.
              -a print inactive/active page stats.
              -d prints disk statistics
              -D prints disk table
              -p prints disk partition statistics
              -s prints vm table
              -m prints slabinfo
              -t add timestamp to output
              -S unit size
              delay is the delay between updates in seconds. 
              unit size k:1000 K:1024 m:1000000 M:1048576 (default is K)
              count is the number of updates.
# vmstat 1            基本的顯示信息
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 0  0  28052  52108   6748 113832    1    7    98    26   73   47  1  2 89  3  4	
 0  0  28052  52108   6748 113832    0    0     0     0   52   77  0  0 100  0  0	

各種事件的彙總信息和內存統計信息

# vmstat -s
       411076  total memory
       347412  used memory
       106796  active memory
       173984  inactive memory
        63664  free memory
         6844  buffer memory
       113840  swap cache
      2097148  total swap
        28052  used swap
      2069096  free swap
         4564 non-nice user cpu ticks
            0 nice user cpu ticks
         9378 system cpu ticks
       381969 idle cpu ticks
        14107 IO-wait cpu ticks
            0 IRQ cpu ticks
          133 softirq cpu ticks
        16588 stolen cpu ticks
       400531 pages paged in
       107270 pages paged out
         1040 pages swapped in
         7225 pages swapped out
       304418 interrupts
       195616 CPU context switches
   1401027180 boot time
         2575 forks

磁盤信息

# vmstat -d
disk- ------------reads------------ ------------writes----------- -----IO------
       total merged sectors      ms  total merged sectors      ms    cur    sec
ram0       0      0       0       0      0      0       0       0      0      0
....
loop7      0      0       0       0      0      0       0       0      0      0
fd0        0      0       0       0      0      0       0       0      0      0
sr0       65     65     520    4622      0      0       0       0      0      4
sda    23009    597  796190  424432   6065  10460  215324  422197      0    180
dm-0    3344      0  109290  168642   1295      0   10408   90252      0     76
dm-1    1362      0   10896   19480   7225      0   57800  431928      0     31
dm-2   11452      0  230018  174775   2145      0   34744  417037      0     49
dm-3    6356      0  439162   72389   5903      0  112344  220191      0     52

以M顯示;默認顯示的是字節

# vmstat -S M 1 5
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 0  0     27     62      6    111    0    0    87    23   67   44  1  2 90  3  4	
 0  0     27     62      6    111    0    0     0     0   36   53  0  0 100  0  0	
 0  0     27     62      6    111    0    0     0     0   32   53  0  0 100  0  0	
 0  0     27     62      6    111    0    0     0     0   59   65  0  0 100  0  0	
 0  0     27     62      6    111    0    0     0    28   45   62  0  0 100  0  0	

-------------------------------------------------------------------------------------------

六、lsof

在許多Linux或者類Unix系統裏都有lsof命令,它經常使用於以列表的形式顯示全部打開的文件和進程。打開的文件包括磁盤文件、網絡套接字、管道、設備和進程。使用這條命令的主要情形之一就是在沒法掛載磁盤和顯示正在使用或者打開某個文件的錯誤信息的時候。使用這條命令,你能夠很容易地看到正在使用哪一個文件。這條命令最經常使用的格式以下:

# lsof | more
COMMAND    PID      USER   FD      TYPE             DEVICE SIZE/OFF       NODE NAME
init         1      root  cwd       DIR              253,0     4096          2 /
init         1      root  rtd       DIR              253,0     4096          2 /
init         1      root  txt       REG              253,0   150352     393260 /sbin/init
init         1      root  mem       REG              253,0    65928     917536 /lib64/libnss_files-2.12.so
init         1      root  mem       REG              253,0  1926800     917921 /lib64/libc-2.12.so

lsof選項信息:

lsof  /path/to/somefile:顯示打開指定文件的全部進程之列表

lsof -c string:顯示其COMMAND列中包含指定字符(string)的進程全部打開的文件;此選項能夠重複使用,以指定多個模式;

lsof -p PID:查看該進程打開了哪些文件;進程號前可使用脫字符「^」取反;

lsof -u USERNAME:顯示指定用戶的進程打開的文件;用戶名前可使用脫字符「^」取反,如「lsof -u ^root」則用於顯示非root用戶打開的全部文件;

lsof -g GID:顯示歸屬gid的進程狀況

lsof +d /DIR/:顯示指定目錄下被進程打開的文件

lsof +D /DIR/:基本功能同上,但lsof會對指定目錄進行遞歸查找,注意這個參數要比grep版本慢:

lsof -a:按「與」組合多個條件,如lsof -a -c httpd -u apache

lsof -N:列出全部NFS(網絡文件系統)文件

lsof -d FD:顯示指定文件描述符的相關進程;也能夠爲描述符指定一個範圍,如0-2表示0,1,2三個文件描述符;另外,-d還支持其它不少特殊值,如:

  mem: 列出全部內存映射文件;

  mmap:顯示全部內存映射設備;

  txt:列出全部加載在內存中並正在執行的進程,包含code和data;

  cwd:正在訪問當前目錄的進程列表;

lsof -n:不反解IP至HOSTNAME

lsof -i:用以顯示符合條件的進程狀況

lsof -i[46] [protocol][@hostname|hostaddr][:service|port]

  46:IPv4或IPv6

  protocol:TCP or UDP

  hostname:Internet host name

  hostaddr:IPv4地址

  service:/etc/service中的服務名稱(能夠不僅一個)

  port:端口號 (能夠不僅一個)


查看22號端口運行信息

# lsof -i TCP:22
COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
sshd    1474 root    3u  IPv4  10212      0t0  TCP *:ssh (LISTEN)
sshd    1474 root    4u  IPv6  10214      0t0  TCP *:ssh (LISTEN)
sshd    2411 root    3u  IPv4  13421      0t0  TCP node3.soul.com:ssh->172.16.250.40:53791 (ESTABLISHED)
sshd    2503 root    3u  IPv4  13630      0t0  TCP node3.soul.com:ssh->172.16.250.40:56215 (ESTABLISHED)
sshd    2536 root    3u  IPv4  14680      0t0  TCP node3.soul.com:ssh->192.168.253.30:56727 (ESTABLISHED)

列出非root用戶所打開的文件

# lsof -i -u ^root
COMMAND    PID    USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
rpcbind   1277     rpc    6u  IPv4  10751      0t0  UDP *:sunrpc 
rpcbind   1277     rpc    7u  IPv4  10753      0t0  UDP *:tunnel 
rpcbind   1277     rpc    8u  IPv4  10754      0t0  TCP *:sunrpc (LISTEN)
rpcbind   1277     rpc    9u  IPv6  10756      0t0  UDP *:sunrpc 
rpcbind   1277     rpc   10u  IPv6  10758      0t0  UDP *:tunnel

顯示指定PID

# lsof -p 1
COMMAND PID USER   FD   TYPE             DEVICE SIZE/OFF   NODE NAME
init      1 root  cwd    DIR              253,0     4096      2 /
init      1 root  rtd    DIR              253,0     4096      2 /
init      1 root  txt    REG              253,0   150352 393260 /sbin/init
init      1 root  mem    REG              253,0    65928 917536 /lib64/libnss_files-2.12.so

kill掉指定用戶的全部進程

# kill -9 `lsof -t -u root`

-------------------------------------------------------------------------------------------

七、iostat

Iostat是一個用於收集顯示系統存儲設備輸入和輸出狀態統計的簡單工具。這個工具經常用來追蹤存儲設備的性能問題,其中存儲設備包括設備、本地磁盤,以及諸如使用NFS等的遠端磁盤。

# iostat
Linux 3.4.68-9.el6.centos.alt.x86_64 (node3.soul.com) 	05/25/2014 	_x86_64_	(2 CPU)
avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.64    0.00    1.37    1.97    2.35   93.67
Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
scd0              0.02         0.14         0.00        520          0
sda               8.28       219.67        62.23     801198     226980
dm-0              1.29        30.71         2.87     112018      10472
dm-1              2.36         3.00        15.85      10960      57800
dm-2              3.78        63.66         9.56     232194      34856
dm-3              3.75       120.42        33.95     439202     123824

簡單幫助信息

# iostat --help        詳細可使用man查看
Usage: iostat [ options ] [ <interval> [ <count> ] ]
Options are:
[ -c ] [ -d ] [ -N ] [ -n ] [ -h ] [ -k | -m ] [ -t ] [ -V ] [ -x ] [ -y ] [ -z ]
[ -j { ID | LABEL | PATH | UUID | ... } [ <device> [...] | ALL ] ]
[ <device> [...] | ALL ] [ -p [ <device> [,...] | ALL ] ]
# iostat -c        僅顯示cpu
Linux 3.4.68-9.el6.centos.alt.x86_64 (node3.soul.com) 	05/25/2014 	_x86_64_	(2 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.62    0.00    1.33    1.91    2.28   93.85

-----------------------------------------------------------------------------------------

八、iftop

iftop是另外一個在控制檯運行的開放源代碼系統監控應用,它顯示了系統上經過網絡接口的應用網絡帶寬使用(源主機或者目的主機)的列表,這個列表按期更新。iftop用於監視網絡的使用狀況,而'top'用於監視CPU的使用狀況。iftop是'top'工具系列中的一員,它用於監視所選接口,並顯示兩個主機間當前網絡帶寬的使用狀況。

#安裝軟件
# yum -y install iftop
# iftop
interface: eth0
IP address is: 192.168.0.113
MAC address is: 00:0c:29:16:59:ffffffc5
                      12.5Kb                25.0Kb                 37.5Kb                50.0Kb		  62.5Kb
└─────────────────────┴─────────────────────┴──────────node3.soul.com─────┴────────.=> 192.168.0.254.────┴─────────.4.09Kb  2.05Kb  2.05Kb                                           <=                                            5.18Kb  2.59Kb  2.59Kb
node3.soul.com                             => 172.16.250.40                              2.55Kb  4.21Kb  4.21Kb
                                           <=                                             160b    320b    320b
node3.soul.com                             => server.magelinux.com                          0b    578b    578b
                                           <=                                               0b   1.03Kb  1.03Kb
172.16.255.255                             => 172.16.250.40                                 0b      0b      0b
                                           <=                                            1.22Kb   702b    702b
...
 Press H or ? for help 2.5Kb                25.0Kb                 37.5Kb                50.0Kb		  62.5Kb
└─────────────────────┴─────────────────────┴──────────node3.soul.com─────┴────────.=> 172.16.250.40.────┴─────────.2.95Kb  3.96Kb  3.96Kb──                                       <=                                             656b    387b    387b
node3.soul.com                             => 192.168.0.254                                 0b   1.64Kb  1.64Kb
                                           <=                                               0b   2.07Kb  2.07Kb
node3.soul.com                             => server.magelinux.com                        584b    579b    579b
                                           <=                                            1.05Kb  1.04Kb  1.04Kb
172.16.255.255                             => 172.16.250.40                                 0b      0b      0b
                                           <=                                            1.22Kb   811b    811b

───────────────────────────────────────────────────────TX:             cum:   8.02KB   peak:   8.68Kb              ──────────rates:   3.52Kb  6.17Kb  6.17KbRX:                    6.84KB           7.22Kb                                           4.66Kb  5.44Kb  5.44Kb

-----------------------------------------------------------------------------------------

九、tsar

Tsar是淘寶開發的一個很是好用的系統監控工具,在淘寶內部大量使用。

它不只能夠監控CPU、IO、內存、TCP等系統狀態,也能夠監控Apache,Nginx/Tengine,Squid等服務器狀態。

# yum -y install tsar-2.1.0-0.el4.x86_64.rpm 
# tsar -h        安裝完成後須要等待一段時間來收集數據
Usage: tsar [options]
Options:
    --cron/-c		run in cron mode, output data to file
    --interval/-i	specify intervals numbers, in minutes if with --live, it is in seconds
    --list/-L		list enabled modules
    --live/-l		running print live mode, which module will print
    --ndays/-n		show the value for the past days (default: 1)
    --merge/-m		merge multiply item to one
    --help/-h		help
Modules Enabled:
    --cpu               CPU share (user, system, interrupt, nice, & idle)
    --mem               Physical memory share (active, inactive, cached, free, wired)
    --swap              swap usage
    --tcp               TCP traffic     (v4)
    --udp               UDP traffic     (v4)
    --traffic		Net traffic statistics
    --io                Linux I/O performance
    --pcsw              Process (task) creation and context switch
    --partition         Disk and partition usage
    --tcpx              TCP connection data
    --load              System Run Queue and load average

監控cpu

# tsar --cpu -l 1
Time        -----------------------cpu---------------------- 
Time          user     sys    wait    hirq    sirq    util   
25/05-23:38    0.0     0.3     0.0     0.0     0.0     0.9   
25/05-23:38    0.1     0.3     0.0     0.0     0.0     0.6   
25/05-23:38    0.0     0.3     0.1     0.0     0.1     0.8   
25/05-23:38    0.0     0.3     0.0     0.0     0.0     0.6

監控內存

# tsar --mem -l 1
Time        -----------------------mem---------------------- 
Time          free    used    buff    cach   total    util   
25/05-23:39  64.7M  288.5M    1.9M   46.3M  401.4M    71.9   
25/05-23:39  68.1M  285.2M    1.9M   46.3M  401.4M    71.0   
25/05-23:39  71.5M  281.7M    1.9M   46.3M  401.4M    70.2

---------------------------------------------------------------------------------

十、ss

ss命令用於顯示socket狀態. 他能夠顯示PACKET sockets, TCP sockets, UDP sockets, DCCP sockets, RAW sockets, Unix domain sockets等等統計。

經常使用命令:

ss -l 顯示本地打開的全部端口

ss -pl 顯示每一個進程具體打開的socket

ss -t -a 顯示全部tcp socket

ss -u -a 顯示全部的UDP Socekt

ss -o state established '( dport = :smtp or sport = :smtp )' 顯示全部已創建的SMTP鏈接

ss -o state established '( dport = :http or sport = :http )' 顯示全部已創建的HTTP鏈接

ss -x src /tmp/.X11-unix/* 找出全部鏈接X服務器的進程

ss -s 列出當前socket詳細信息

列出當前已經鏈接,關閉,等待的tcp鏈接:

# ss -s
Total: 196 (kernel 244)
TCP:   46 (estab 2, closed 28, orphaned 0, synrecv 0, timewait 27/0), ports 13

Transport Total     IP        IPv6
*	  244       -         -        
RAW	  0         0         0        
UDP	  8         5         3        
TCP	  18        11        7        
INET	  26        16        10       
FRAG	  0         0         0

列出當前監聽全部tcp/udp進程信息:

ss -tunlp
Netid  State      Recv-Q Send-Q                     Local Address:Port                       Peer Address:Port 
udp    UNCONN     0      0                                      *:604                                   *:*      users:(("rpcbind",1277,7))
udp    UNCONN     0      0                                      *:631                                   *:*      users:(("cupsd",1347,9))
udp    UNCONN     0      0                                      *:648                                   *:*      users:(("rpc.statd",1320,5))
udp    UNCONN     0      0                                      *:60161                                 *:*

ss列出全部http在鏈接狀態的信息:

# ss -o state established '( dport = :http or sport = :http )'
Recv-Q Send-Q                           Local Address:Port                               Peer Address:Port   
0      0                         ::ffff:192.168.0.113:http                      ::ffff:192.168.253.30:61742    timer:(keepalive,120min,0)

ss列出處在FIN-WAIT-1狀態的http、https鏈接:

# ss -o state fin-wait-1 '( sport = :http or sport = :https )'

ss經常使用的state狀態:

established

syn-sent

syn-recv

fin-wait-1

fin-wait-2

time-wait

closed

close-wait

last-ack

listen

closing

all : All of the above states

connected : All the states except for listen and closed

synchronized : All the connected states except for syn-sent

bucket : Show states, which are maintained as minisockets, i.e. time-wait and syn-recv.

big : Opposite to bucket state.

-------------------------------------------------------------------------------------------

十一、netstat

Netstat是一個用於監控進出網絡的包和網絡接口統計的命令行工具。它是一個很是有用的工具,系統管理員能夠用來監控網絡性能,定位並解決網絡相關問題。

列出所有的tcp/udp鏈接

# netstat -a | more
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address               Foreign Address             State      
tcp        0      0 *:41038                     *:*                         LISTEN      
tcp        0      0 *:sunrpc                    *:*                         LISTEN      
tcp        0      0 192.168.122.1:domain        *:*                         LISTEN      
tcp        0      0 *:ssh                       *:*                         LISTEN      
tcp        0      0 localhost:ipp               *:*                         LISTEN      
tcp        0      0 node2.soul.com:61209        *:*                         LISTEN      
tcp        0      0 localhost:smtp              *:*                         LISTEN      
tcp        0      0 localhost:x11-ssh-offset    *:*                         LISTEN      
tcp        0      0 localhost:6011              *:*                         LISTEN      
tcp        0      0 localhost:6012              *:*                         LISTEN      
tcp        0      0 localhost:6013              *:*                         LISTEN      
tcp        0      0 *:36994                     *:*                         LISTEN      
tcp        0      0 node2.soul.com:9989         *:*                         LISTEN      
tcp        0      0 *:mysql                     *:*                         LISTEN      
tcp        0      0 node2.soul.com:ssh          172.16.250.40:53987         ESTABLISHED 
tcp      292      0 node2.soul.com:61209        node3.soul.com:52258        CLOSE_WAIT 
....

顯示協議統計信息

# netstat -s
Ip:
    29462 total packets received
    4994 with invalid addresses
    0 forwarded
    0 incoming packets discarded
    24468 incoming packets delivered
    21227 requests sent out
Icmp:
    805 ICMP messages received
    6 input ICMP message failed.
    ICMP input histogram:
        destination unreachable: 804
        redirects: 1
    804 ICMP messages sent
    0 ICMP messages failed
    ICMP output histogram:
        destination unreachable: 804
IcmpMsg:
        InType3: 804
        InType5: 1
        OutType3: 804

幫助信息

# netstat -h
usage: netstat [-veenNcCF] [<Af>] -r         netstat {-V|--version|-h|--help}
       netstat [-vnNcaeol] [<Socket> ...]
       netstat { [-veenNac] -I[<Iface>] | [-veenNac] -i | [-cnNe] -M | -s } [delay]

        -r, --route                display routing table
        -I, --interfaces=<Iface>   display interface table for <Iface>
        -i, --interfaces           display interface table
        -g, --groups               display multicast group memberships
        -s, --statistics           display networking statistics (like SNMP)
        -M, --masquerade           display masqueraded connections

工具還有不少;且每一個工具的選項都有不少;具體使用方法須要在平時多加使用才能熟練掌握;在此就不一一介紹了。




若有錯誤;懇請糾正。

相關文章
相關標籤/搜索