20個Linux系統管理員必知系統監控工具(轉)

湖湘文化發表於2013-11-19
 

轉載自IT168 [ http://www.it168.com/ ]

http://tech.it168.com/a2010/0611/1065/000001065619_3.shtml

 

 

需要監控

  Linux伺服器系統效能嗎?嘗試下面這些系統內建或附件的工具吧。大多數 Linux發行版本都裝備了大量的監控工具。這些工具提供了能用作取得相關資訊和系統活動的量度指標。你能使用這些工具發現造成效能問題可能原因。此次討論到的工具只是分析和除錯伺服器下面問題時最基本工具中的一部分。

 

  1. 找出瓶頸

 

  2. 硬碟(儲存)瓶頸

 

  3. CPU及記憶體瓶頸

 

  4. 網路瓶頸

 

  #1: top -程式活動

 

  top提供一個當前執行系統實時動態的檢視,也就是正在執行程式。在預設情況下,顯示系統中CPU使用率最高的任務,並每 5秒鐘重新整理一次。

 

01.Linux top命令

 

  常用熱鍵 熱鍵用途

 

  t 顯示摘要資訊開關.

 

  m 顯示記憶體資訊開關.

 

  a 分類顯示系統不同資源的使用大戶。有助於快速識別系統中資源消耗多的任務。

 

  f 新增刪除所要顯示欄位.

 

  o 調整所要顯示欄位的順序.

 

  r 調整一個正在執行的程式Nice.

 

  k 結束一個正在執行的程式.

 

  z 彩色/黑白顯示開關

 

#2:vmstat -系統活動、硬體及系統資訊

 

  使用 vmstat命令可以得到關於程式、記憶體、記憶體分頁、堵塞 IOtraps CPU活動的資訊。

 

  # 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

0 0 0 2540988 522188 5130400 0 0 2 32 4 2 4 1 96 0 0

1 0 0 2540988 522188 5130400 0 0 0 720 1199 665 1 0 99 0 0

0 0 0 2540956 522188 5130400 0 0 0 0 1151 1569 4 1 95 0 0

0 0 0 2540956 522188 5130500 0 0 0 6 1117 439 1 0 99 0 0

0 0 0 2540940 522188 5130512 0 0 0 536 1189 932 1 0 98 0 0

0 0 0 2538444 522188 5130588 0 0 0 0 1187 1417 4 1 96 0 0

0 0 0 2490060 522188 5130640 0 0 0 18 1253 1123 5 1 94 0 0

 

  顯示記憶體使用詳細資訊# vmstat -m

 

  顯示記憶體活動 /不活動的資訊# vmstat -a

 

  #3: w -顯示誰已登入,他們正在做什麼?

 

  w命令顯示系統當前使用者及其執行程式的資訊。

 

  # w username

 

  # w vivek

 

  輸出樣例:

 

17:58:47 up 5 days,20:28,2 users,oad average:0.36,0.26,0.24

USER TTY  FROM LOGIN@  IDLE JCPU PCPU WHAT

root pts/0 10.1.3.145 14:55 5.00s 0.04s 0.02s vim /etc/resolv.conf

root pts/1 10.1.3.145 17:43 0.00s 0.03s 0.00s w

 

  #4uptime -告訴系統已經執行了多久?

 

  uptime命令過去只顯示系統執行多久。現在,可以顯示系統執行多久、當前有多少的使用者登入、在過去的 1515分鐘裡平均負載時多少。

 

  # uptime

 

  輸入樣例:

 

  18:02:41 up 41 days, 23:42, 1 user, load average: 0.00, 0.00, 0.00

 

  l可以被認為是最優的負載值。負載是會隨著系統不同改變得。單 CPU系統 1-3 SMP系統 6-10都是可能接受的。

 

  #5ps -顯示程式

 

  ps命令顯示當前執行程式的快照。使用-A-e顯示所有程式。

 

  #ps -A

 

  輸出樣例:

 

PID TTY   TIME CMD

1 ?      00:00:02 init

2 ?         00:00:02 migration/0

3 ?         00:00:01 ksoftirqd/0

4 ?         00:00:00 watchdog/0

5 ?         00:00:00 migration/1

6 ?         00:00:15 ksoftirqd/1

4881 ?     00:53:28 java

4885 tty1 00:00:00 mingetty

4886 tty2 00:00:00 mingetty

4887 tty3 00:00:00 mingetty

4888 tty4 00:00:00 mingetty

4891 tty5 00:00:00 mingetty

4892 tty6 00:00:00 mingetty

4893 ttyS1 00:00:00 agetty

12853 ?     00:00:00 cifsoplockd

12854 ?    00:00:00 cifsdnotifyd

14231 ?     00:10:34 lighttpd

14232 ?    00:00:00 php-cgi

54981 pts/0 00:00:00 vim

55465?    00:00:00 php-cgi

55546 ? 00:00:00 bind9-snmp-stat

55704 pts/1 00:00:00

 

  psps top非常相似,但ps提供更多的資訊。

 

  輸出長格式# ps -Al

 

  輸出附加全格式(顯示程式在執行時傳入的引數)# ps -AlF

 

  顯示程式結構# ps -AlFH

 

  在程式後顯示執行緒# ps -AlLm

 

  列印伺服器上所有程式# ps ax  # ps axu

 

  列印程式樹

 

# ps -ejH

# ps axjf

# pstree

 

  列印安全資訊

 

# ps -eo euser,ruser,suser,fuser,f,comm,label

# ps axZ

# ps -eM

 

  檢視使用 Vivek使用者名稱執行的程式

  # ps -U vivek -u vivek u

 

  設定自定義輸出格式

 

# ps -eo pid,tid,class,rtprio,ni,pri,psr,pcpu,stat,wchan:14,comm

# ps axo stat,euid,ruid,tty,tpgid,sess,pgrp,ppid,pid,pcpu,comm

# ps -eopid,tt,user,fname,tmout,f,wchan

 

  只顯示Lighttpd的程式ID

 

  # ps -C lighttpd -o pid=或者# pgrep lighttpd或者# pgrep -u vivek php-cgi

 

  顯示PID55977的程式名稱

 

  # ps -p 55977 -o comm=

 

  找出消耗記憶體最多的前 10名程式

 

  # ps -auxf |sort -nr -k 4 |head -10

 

  找出使用 CPU最多的前 10名程式

 

  #ps -auxf | sort -nr -k 3 | head -10

 

#10: pmap -程式的記憶體使用

 

  pmap命令可以顯示程式的記憶體對映,使用這個命令可以找出造成記憶體瓶頸的原因。

 

  # pmap -d PID

 

  顯示 PID 47394程式的記憶體資訊。

 

  # pmap -d 47394

 

  輸出樣例:

 

47394: /usr/bin/php-cgi

Address Kbytes Mode Offset Device Mapping

0000000000400000 2584 r-x--0000000000000000 008:00002 php-cgi

0000000000886000 140 rw---0000000000286000 008:00002 php-cgi

00000000008a9000 52 rw---00000000008a9000 000:00000 [ anon ]

0000000000aa8000 76 rw---00000000002a8000 008:00002 php-cgi

000000000f678000 1980 rw---000000000f678000 000:00000 [ anon ]

000000314a600000 112 r-x--0000000000000000 008:00002 ld-2.5.so

000000314a81b000 4 r----000000000001b000 008:00002 ld-2.5.so

000000314a81c000 4 rw---000000000001c000 008:00002 ld-2.5.so

000000314aa00000 1328 r-x--0000000000000000 008:00002 libc-2.5.so

000000314ab4c000 2048 -----000000000014c000 008:00002 libc-2.5.so

.....

......

..

00002af8d48fd000 4 rw---0000000000006000 008:00002 xsl.so

00002af8d490c000 40 r-x--0000000000000000 008:00002 libnss_files-2.5.so

00002af8d4916000 2044 -----000000000000a000 008:00002 libnss_files-2.5.so

00002af8d4b15000 4 r----0000000000009000 008:00002 libnss_files-2.5.so

00002af8d4b16000 4 rw---000000000000a000 008:00002 libnss_files-2.5.so

00002af8d4b17000 768000 rw-s-0000000000000000 000:00009 zero (deleted)

00007fffc95fe000 84 rw---00007ffffffea000 000:00000 [ stack ]

ffffffffff600000 8192 -----0000000000000000 000:00000 [ anon ]

mapped: 933712K writeable/private: 4304K shared: 768000K

 

  最後一行非常重要:

 

  * mapped:

 

  933712K記憶體對映所佔空間大小

 

  * writeable/private:

 

  4304K私有地址空間大小

 

  * shared:

 

  768000K共享地址空間大小

 

  #11 #12:netstat ss -網路相關資訊

 

  netstat可以顯示網路連結、路由表資訊、介面統計資訊、偽裝連結和多播成員(multicast

 

  memberships),ss命令用來顯示網路套接字資訊,它允許顯示類似 netstat一樣的資訊。

 

  #13:iptraf -網路實時資訊

 

  iptraf是一個可互動式的 IP網路監控工具。它可以生成多種網路統計資訊包括:TCP資訊、UDP數量、ICMP OSPF資訊、乙太網負載資訊、節點狀態、IP校驗錯誤等。有下面幾種資訊格式:

 

  1..不同網路 TCP連結傳輸量

 

  2.不同網路介面 IP傳輸量

 

  3.不同協議網路傳輸量

 

  4.不同 TCP/UDP埠和不同包大小網路傳輸量

 

  5.不同第二層地址網路傳輸量

 

02:一般介面資訊:不同網路介面 IP傳輸量

 

03:不同網路 TCP連結傳輸量

#14tcpdump:詳細的網路流量分析

 

  tcpdump是一個簡單網路流量轉儲工具,然而要使用好需要對 TCP/IP協議非常熟悉。例如要顯示關於 DNS的網路流量,輸入:

 

  # tcpdump -i eth1 'udp port 53'

 

  顯示所有進出 80

 

  IPv4 HTTP包,也就是隻列印包含資料的包。例如:S YNFIN包和 AC K-only

 

  包輸入:

 

  # tcpdump 'tcp port 80 and (((ip[2:2] -((ip[0]&0xf)<<2)) -((tcp[12]&0xf0)>>2)) != 0)'

 

  顯示所有到的 FTP會話,輸入:

 

  # tcpdump -i eth1 'dst 202.54.1.5 and (port 21 or 20'

 

  顯示所有到 192.168.1.5 HTTP會話

 

  # tcpdump -ni eth0 'dst 192.168.1.5 and tcp and port http'

 

  用 wireshark瀏覽轉儲檔案中的詳細資訊,輸入:

 

  # tcpdump -n -i eth1 -s 0 -w output.txt src or dst port 80

 

  #15:strace -系統呼叫

 

  追蹤系統呼叫和型號,這對於除錯 Web伺服器和其他伺服器非常有用。瞭解怎樣追蹤程式和他功能。

 

  #16:/proc檔案系統 -各種核心資訊/proc目錄下檔案提供了很多不同硬體裝置和核心的詳細資訊。更多詳情參見 Linux kernel /proc

 

  一般/proc例如:

 

# cat /proc/cpuinfo

# cat /proc/meminfo

# cat /proc/zoneinfo

# cat /proc/mounts

  #17:Nagios -伺服器及網路監控

 

  Nagios是一款非常流行的系統及網路監控軟體。你可以輕鬆監控所有的主機、網路裝置及服務。它能在發生故障和重新恢復後傳送警訊。FAN "Fully Automated Nagios"的縮寫。FAN的目標就是由Nagios社群提供Nagios的安裝。為了使安裝 Nagios伺服器更加容易,FAN提供一個標準 ISO格式的光碟映象。此發行版中還會包含一組增強使用者使用體驗的工具。

 

  #18:Cacti -基於 Web的監控工具

 

  Cacti是一套完成的網路圖形化解決方案,基於 RRDTool的資料儲存和圖形化功能。Cacti提供一個快速的輪詢器、進階的圖形化模板、多種資料採集方法和使用者管理功能。這些功能都擁有非常友好易用的介面,確保可以部署在一個包含數百臺裝置的複雜網路中。它提供關於網路、CPU、記憶體、已登入 使用者、ApacheDNS等資訊。關於怎樣在 CentOS / RHEL安裝配置 Cact i,詳見:http://

 

  #19:KDE System Guard

 

  KSysguard是在 KDE桌面下一個網路化的系統監控工具。這個工具可以透過 SSH會話執行。它提供很多功能,例如可以監控本機和遠端主機的客戶端/伺服器架構,前端圖形介面使用所謂感測器得到資訊並展現出來。感測器返回的可以是一個簡單的數值或是一組表格的資訊。針對不同的資訊型別,提供一個或多個顯示。這些顯示被組織多個工作表中,可以工作表可以獨體儲存和載入。所以, KSysguard不只是一個簡單的工作管理員,還是一個可以控制多臺伺服器的強大工具。

 

05 KDE System Guard

 

  #20:Gnome System Monitor

 

  System Monitor可以顯示系統基本資訊、監控系統程式、系統資源及檔案系統使用率。你也可以使用 System Monitor監控和修改系統行為。儘管沒有 KDE System Guard功能強大,但其提供的基本資訊對於入門使用者還是非常有用的。

 

  *顯示關於計算機硬體和軟體的各種基本資訊。

 

  *Linux核心版本

 

  *GNOME版本

 

  *硬體

 

  *安裝的記憶體

 

  *處理器及其速度

 

  *系統狀態

 

  *當前可用的硬碟空間

 

  *程式

 

  *記憶體及交換空間

 

  *網路使用率

 

  *檔案系統

 

  *所有掛載的檔案系統及其基本資訊

 

06The Gnome System Monitor application

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/21256317/viewspace-776976/,如需轉載,請註明出處,否則將追究法律責任。

相關文章