13個(gè)超實(shí)用的Linux性能監(jiān)測(cè)命令行工具
譯文【2013年4月11日 51CTO外電頭條】對(duì)每一個(gè)系統(tǒng)管理員或網(wǎng)絡(luò)管理員來說,每天監(jiān)測(cè)和調(diào)試Linux系統(tǒng)性能方面的問題其實(shí)是難度非常大的一項(xiàng)任務(wù)。我在IT行業(yè)擔(dān)任了5年的Linux管理員,逐漸明白了監(jiān)測(cè)系統(tǒng)并確保系統(tǒng)正常運(yùn)行有多么困難。由于這個(gè)原因,我們整理出這份列表,介紹了12個(gè)常用的命令行監(jiān)測(cè)工具,它們也許對(duì)每一個(gè)Linux/Unix系統(tǒng)管理員來說很有用。這些命令在所有版本的Linux環(huán)境下都能找到,有助于監(jiān)測(cè)和查找性能問題的實(shí)際根源。下面介紹的這些命令非常全面,完全足以讓你從中選出適合自身監(jiān)測(cè)環(huán)境的一個(gè)工具。
專題推薦:Linux監(jiān)控工具的展覽館
1. Top:監(jiān)測(cè)Linux進(jìn)程
Linux Top命令是一個(gè)性能監(jiān)測(cè)程序,它經(jīng)常被許多系統(tǒng)管理員用來監(jiān)測(cè)Linux性能,在許多類似Linux/Unix的操作系統(tǒng)環(huán)境下都能找到。Top命令可用于顯示所有運(yùn)行中和活動(dòng)的實(shí)時(shí)進(jìn)程(按順序排列),并且定期更新。它可顯示處理器使用情況、內(nèi)存使用情況、交換內(nèi)存、緩存大小、緩沖器大小、進(jìn)程標(biāo)識(shí)符(PID)、用戶、命令及更多的信息。它還顯示了某個(gè)運(yùn)行中進(jìn)程大量使用內(nèi)存和處理器的情況。Top命令對(duì)系統(tǒng)管理員大有用處,可用來監(jiān)測(cè),需要時(shí)還可采取正確的行動(dòng)。不妨看看Top命令的實(shí)際使用情況。
# top
Top命令示例
2. VmStat:顯示虛擬內(nèi)存方面的統(tǒng)計(jì)信息
Linux VmStat命令用來顯示虛擬內(nèi)存、內(nèi)核線程、磁盤、系統(tǒng)進(jìn)程、輸入/輸出塊、中斷、處理器活動(dòng)及更多方面的統(tǒng)計(jì)信息。默認(rèn)情況下,vmstat命令并不出現(xiàn)在Linux系統(tǒng)環(huán)境下,你需要安裝一個(gè)名為sysstat的程序包,該程序包里面含有一個(gè)vmstat程序。命令格式通常這樣使用:
# vmstat
procs -----------memory----------swap-- -----io---- --system-- -----cpu----
r b swpd free inact active si so bi bo in cs us sy id wa st 1 0 0 810420 97380 70628 0 0 115 4 89 79 1 6 90 3 0 |
3. Lsof:列出打開的文件
Lsof命令用于許多類似Linux/Unix的系統(tǒng)中,用來顯示所有打開的文件和進(jìn)程。打開的文件包括:磁盤文件、網(wǎng)絡(luò)套接字、管道、設(shè)備和進(jìn)程。使用這個(gè)命令的主要場(chǎng)合之一是,當(dāng)磁盤無法卸載,顯示文件被使用或被打開這個(gè)錯(cuò)誤信息時(shí)。有了這個(gè)命令,你很容易查明哪些文件在使用中。這個(gè)命令最常見的格式如下:
# lsof
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
init 1 root cwd DIR 104,2 4096 2 / init 1 root rtd DIR 104,2 4096 2 / init 1 root txt REG 104,2 38652 17710339 /sbin/init init 1 root mem REG 104,2 129900 196453 /lib/ld-2.5.so init 1 root mem REG 104,2 1693812 196454 /lib/libc-2.5.so init 1 root mem REG 104,2 20668 196479 /lib/libdl-2.5.so init 1 root mem REG 104,2 245376 196419 /lib/libsepol.so.1 init 1 root mem REG 104,2 93508 196431 /lib/libselinux.so.1 init 1 root 10u FIFO 0,17 953 /dev/initctl |
#p#
4. Tcpdump:網(wǎng)絡(luò)數(shù)據(jù)包分析器
Tcpdump是使用最廣泛的命令行網(wǎng)絡(luò)數(shù)據(jù)包分析器或數(shù)據(jù)包嗅探程序之一,用于捕捉或過濾在網(wǎng)絡(luò)上通過某個(gè)接口接收或傳輸?shù)腡CP/IP數(shù)據(jù)包。它還提供了這個(gè)選項(xiàng):把捕捉到的數(shù)據(jù)包保存到一個(gè)文件中,供以后分析。Tcpdump幾乎出現(xiàn)在所有主要的Linux發(fā)行版環(huán)境下。
# tcpdump -i eth0
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes 22:08:59.617628 IP tecmint.com.ssh > 115.113.134.3.static-mumbai.vsnl.net.in.28472: P 2532133365:2532133481(116) ack 3561562349 win 9648 22:09:07.653466 IP tecmint.com.ssh > 115.113.134.3.static-mumbai.vsnl.net.in.28472: P 116:232(116) ack 1 win 9648 22:08:59.617916 IP 115.113.134.3.static-mumbai.vsnl.net.in.28472 > tecmint.com.ssh: . ack 116 win 64347 |
5. Netstat:顯示網(wǎng)絡(luò)方面的統(tǒng)計(jì)信息
除了用于監(jiān)測(cè)接口方面的統(tǒng)計(jì)信息外,Netstat這個(gè)命令行工具還用于監(jiān)測(cè)進(jìn)出的網(wǎng)絡(luò)數(shù)據(jù)包方面的統(tǒng)計(jì)信息。它對(duì)每個(gè)系統(tǒng)管理員來說是個(gè)很有用的工具,可用于監(jiān)測(cè)網(wǎng)絡(luò)性能,并排查網(wǎng)絡(luò)相關(guān)問題。
# netstat -a | more
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 *:mysql *:* LISTEN tcp 0 0 *:sunrpc *:* LISTEN tcp 0 0 *:realm-rusd *:* LISTEN tcp 0 0 *:ftp *:* LISTEN tcp 0 0 localhost.localdomain:ipp *:* LISTEN tcp 0 0 localhost.localdomain:smtp *:* LISTEN tcp 0 0 localhost.localdomain:smtp localhost.localdomain:42709 TIME_WAIT tcp 0 0 localhost.localdomain:smtp localhost.localdomain:42710 TIME_WAIT tcp 0 0 *:http *:* LISTEN tcp 0 0 *:ssh *:* LISTEN tcp 0 0 *:https *:* LISTEN |
6. Htop:監(jiān)測(cè)Linux進(jìn)程
Htop是一款非常先進(jìn)的交互式實(shí)時(shí)Linux進(jìn)程監(jiān)測(cè)工具。它非常類似Linux top命令,但是有一些豐富的功能特性,比如易于使用的界面,可用于管理進(jìn)程、快捷鍵、進(jìn)程的垂直和水平視圖以及其他對(duì)象。Htop是一個(gè)第三方工具,并不包含在Linux系統(tǒng)中,你需要使用YUM程序包管理器工具來安裝它。想了解安裝方面的更多信息,請(qǐng)參閱本文。
# htop
Htop命令示例的屏幕截圖
#p#
7. Iotop:監(jiān)測(cè)Linux磁盤的輸入/輸出
Iotop也非常類似top命令和Htop程序,但是它有記賬功能,可用于監(jiān)測(cè)和顯示實(shí)時(shí)磁盤輸入/輸出及進(jìn)程。這個(gè)工具非常有用,可用于查找具體的進(jìn)程以及進(jìn)程的頻繁使用的磁盤讀取/寫入操作。
# iotop
Iotop命令示例的屏幕截圖
8. Iostat:顯示輸入/輸出方面的統(tǒng)計(jì)信息
IoStat是款簡單的工具,可以收集和顯示系統(tǒng)輸入/輸出存儲(chǔ)設(shè)備方面的統(tǒng)計(jì)信息。這個(gè)工具經(jīng)常用于追查存儲(chǔ)設(shè)備性能方面的問題,包括設(shè)備、本地磁盤和NFS等遠(yuǎn)程磁盤。
# iostat
Linux 2.6.18-238.9.1.el5 (tecmint.com) 09/13/2012
avg-cpu: %user %nice %system %iowait %steal %idle 2.60 3.65 1.04 4.29 0.00 88.42 Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn cciss/c0d0 17.79 545.80 256.52 855159769 401914750 cciss/c0d0p1 0.00 0.00 0.00 5459 3518 cciss/c0d0p2 16.45 533.97 245.18 836631746 384153384 cciss/c0d0p3 0.63 5.58 3.97 8737650 6215544 cciss/c0d0p4 0.00 0.00 0.00 8 0 cciss/c0d0p5 0.63 3.79 5.03 5936778 7882528 cciss/c0d0p6 0.08 2.46 2.34 3847771 3659776 |
9. IPTraf:實(shí)時(shí)監(jiān)測(cè)IP局域網(wǎng)
IPTraf是一個(gè)基于控制臺(tái)的開源實(shí)時(shí)網(wǎng)絡(luò)(IP LAN)監(jiān)測(cè)實(shí)用工具,面向Linux。它可以收集通過網(wǎng)絡(luò)傳輸?shù)谋姸嘈畔ⅲū热鏘P流量監(jiān)測(cè)器),包括TCP標(biāo)記信息、ICMP詳細(xì)信息、TCP/UDP流量故障、TCP連接數(shù)據(jù)包以及字節(jié)計(jì)數(shù)。它還可以收集接口方面普通和詳細(xì)的統(tǒng)計(jì)信息,比如TCP、UDP、IP、ICMP、非IP、IP校驗(yàn)和錯(cuò)誤以及接口活動(dòng)等。
IP流量監(jiān)測(cè)器
#p#
10. psacct或acct:監(jiān)測(cè)用戶活動(dòng)
psacct或acct這兩個(gè)工具大有用處,可用于監(jiān)測(cè)系統(tǒng)上每個(gè)用戶的活動(dòng)。這兩個(gè)守護(hù)程序都在后臺(tái)運(yùn)行,監(jiān)測(cè)系統(tǒng)上每個(gè)用戶的總體活動(dòng),還監(jiān)測(cè)它們?cè)谑褂檬裁促Y源。
這些工具對(duì)系統(tǒng)管理員們來說大有用處,可用于跟蹤每個(gè)用戶的活動(dòng),比如用戶在從事什么操作,他們發(fā)出了什么命令,他們使用了多少資源,以及他們?cè)谙到y(tǒng)上處于活動(dòng)狀態(tài)已有多久,等等。
11. Monit:監(jiān)測(cè)Linux進(jìn)程和服務(wù)
Monit是一款免費(fèi)的開源、基于Web的進(jìn)程監(jiān)測(cè)實(shí)用工具,可以自動(dòng)監(jiān)測(cè)和管理系統(tǒng)進(jìn)程、程序、文件、目錄、許可權(quán)限、校驗(yàn)和以及文件系統(tǒng)。
它可以監(jiān)測(cè)Apache、MySQL、Mail、FTP、ProFTP、Nginx和SSH等服務(wù)??梢詮拿钚谢蚴褂闷渥约旱腤eb界面來查看系統(tǒng)狀態(tài)。
Monit Linux進(jìn)程監(jiān)測(cè)
12. NetHogs:監(jiān)測(cè)每個(gè)進(jìn)程的網(wǎng)絡(luò)帶寬
NetHogs是一款優(yōu)秀、小巧的開源程序(類似Linux top命令),可密切監(jiān)測(cè)系統(tǒng)上每個(gè)進(jìn)程的網(wǎng)絡(luò)活動(dòng)。它還密切跟蹤每個(gè)程序或應(yīng)用軟件所使用的實(shí)時(shí)網(wǎng)絡(luò)流量帶寬。
NetHogs Linux帶寬監(jiān)測(cè)
13. iftop:監(jiān)測(cè)網(wǎng)絡(luò)帶寬
iftop是另一款基于終端的免費(fèi)開源系統(tǒng)監(jiān)測(cè)實(shí)用工具,可顯示一份經(jīng)常更新的列表,該列表顯示了通過系統(tǒng)上網(wǎng)絡(luò)接口的網(wǎng)絡(luò)帶寬使用情況。iftop通常用于監(jiān)測(cè)網(wǎng)絡(luò)使用情況,就像top通常用于監(jiān)測(cè)處理器使用情況。iftop是屬于top家族的工具,可監(jiān)測(cè)某個(gè)所選擇的接口,并顯示兩個(gè)主機(jī)之間目前的帶寬使用情況。
Iftop:網(wǎng)絡(luò)帶寬監(jiān)測(cè)
我們想知道各位使用哪種監(jiān)測(cè)程序來監(jiān)測(cè)Linux服務(wù)器的性能?要是我們遺漏了任何你希望我們補(bǔ)充進(jìn)來的重要工具,請(qǐng)留言告知我們,歡迎分享。
原文鏈接:http://www.tecmint.com/command-line-tools-to-monitor-linux-performance/