20個Linux系統管理員必知系統監控工具(轉)
轉載自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命令可以得到關於程式、記憶體、記憶體分頁、堵塞 IO、traps及 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
#4:uptime -告訴系統已經執行了多久?
uptime命令過去只顯示系統執行多久。現在,可以顯示系統執行多久、當前有多少的使用者登入、在過去的 1,5,15分鐘裡平均負載時多少。
# 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都是可能接受的。
#5:ps -顯示程式
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
顯示PID為55977的程式名稱
# 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連結傳輸量
#14:tcpdump:詳細的網路流量分析
tcpdump是一個簡單網路流量轉儲工具,然而要使用好需要對 TCP/IP協議非常熟悉。例如要顯示關於 DNS的網路流量,輸入:
# tcpdump -i eth1 'udp port 53'
顯示所有進出 80埠
IPv4 HTTP包,也就是隻列印包含資料的包。例如:S YN、FIN包和 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、記憶體、已登入 使用者、Apache、DNS等資訊。關於怎樣在 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版本
*硬體
*安裝的記憶體
*處理器及其速度
*系統狀態
*當前可用的硬碟空間
*程式
*記憶體及交換空間
*網路使用率
*檔案系統
*所有掛載的檔案系統及其基本資訊
圖06:The Gnome System Monitor application
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/21256317/viewspace-776976/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 80 多個 Linux 系統管理員必備的監控工具Linux
- 10多個 Linux 系統管理員必備的監控工具、常用的網站監控工具Linux網站
- 80 多個 Linux 系統管理員的監控工具Linux
- linux 系統監控工具Linux
- 24 個必知必會的系統管理員面試問題面試
- nmon 監控AIX,linux系統工具AILinux
- 監控系統資源的6個Linux工具Linux
- 監控 Linux 系統的 7 個命令列工具Linux命令列
- 駕駛員監控系統(DMS)
- Mac系統監控工具Mac
- 6個監控linux系統資源的快速工具Linux
- linux常用系統監控工具之vmstatLinux
- AIX系統nmon工具監控AI
- 系統監控工具:MenuBar Stats for macMac
- The Linux-PAM 系統管理員指南(轉)Linux
- (轉)使用 Nmon 監控 Linux 的系統效能Linux
- 【工具】tsar 監控Linux系統狀態的利器Linux
- UNIX和linux系統效能監控工具oswatcherLinux
- 蘋果系統用於系統監控和管理的命令蘋果
- linux系統 物理硬碟監控Linux硬碟
- 監控linux系統資源Linux
- Linux系統監控神器--CollectlLinux
- Nrpe 監控Linux系統Linux
- 監控linux系統的shellLinux
- Linux系統監控命令薦Linux
- 雪亮工程視訊監控系統建設方案重點人員監控系統開發
- 資料庫監控工具--PIGOSSBSM運維監控管理系統資料庫Go運維
- Linux系統管理員模擬試卷(轉)Linux
- 使用Inotify 監控Linux 檔案系統事件(轉)Linux事件
- mac系統監控工具——MenuBar Stats for macMac
- 一文詳解Linux系統常用監控工具Linux
- 多功能 Linux 系統監控工具Glances功能介紹Linux
- Mysql 監控系統MySql
- 監控系統元件元件
- Linux 管理員手冊(1)--Linux系統概述(轉)Linux
- Linux 常用系統效能監控命令Linux
- Linux系統監控命令之iotopLinux
- Solaris linux 系統監控指令碼Linux指令碼