《監(jiān)控Linux性能的18個(gè)命令行工具》要點(diǎn):
本文介紹了監(jiān)控Linux性能的18個(gè)命令行工具,希望對(duì)您有用。如果有疑問(wèn),可以聯(lián)系我們。
對(duì)于系統(tǒng)和網(wǎng)絡(luò)管理員來(lái)說(shuō)每天監(jiān)控和調(diào)試Linux系統(tǒng)的性能問(wèn)題是一項(xiàng)繁重的工作.在IT領(lǐng)域作為一名Linux系統(tǒng)的管理員工作5年后,我逐漸認(rèn)識(shí)到監(jiān)控和保持系統(tǒng)啟動(dòng)并運(yùn)行是多么的不容易.基于此原因,我們已編寫了最常使用的18個(gè)命令行工具列表,這些工具將有助于每個(gè)Linux/Unix 系統(tǒng)管理員的工作.這些命令行工具可以在各種Linux系統(tǒng)下使用,可以用于監(jiān)控和查找產(chǎn)生性能問(wèn)題的原因.這個(gè)命令行工具列表提供了足夠的工具,您可以挑選適用于您的監(jiān)控場(chǎng)景的工具.
Linux下的Top命令是一個(gè)性能監(jiān)控程序,許多系統(tǒng)管理員常常用它來(lái)監(jiān)控Linux性能,在許多Linux或者類Unix操作系統(tǒng)里都有這個(gè)命令.Top命令用于按一定的順序顯示所有正在運(yùn)行而且處于活動(dòng)狀態(tài)的實(shí)時(shí)進(jìn)程,而且會(huì)定期更新顯示結(jié)果.這條命令顯示了CPU的使用率、內(nèi)存使用率、交換內(nèi)存使用大小、高速緩存使用大小、緩沖區(qū)使用大小,進(jìn)程PID、所使用命令以及其他.它還可以顯示正在運(yùn)行進(jìn)程的內(nèi)存和CPU占用多的情況.對(duì)系統(tǒng)管理員來(lái)說(shuō),top命令式是一個(gè)非常有用的,它可用于監(jiān)控系統(tǒng)并在需要的時(shí)候采取正確的處理動(dòng)作.讓我們看看實(shí)際中的top命令.
# top
Linux 的 VmStat 命令用于顯示虛擬內(nèi)存、內(nèi)核線程、磁盤、系統(tǒng)進(jìn)程、I/O 塊、中斷、CPU 活動(dòng) 等的統(tǒng)計(jì)信息.缺省情況下, vmstat 命令在 Linux 系統(tǒng)下不可用,你需要安裝一個(gè)包含了 vmstat 程序的 sysstat 軟件包.命令格式的常見(jiàn)用法是:
# 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
在許多Linux或者類Unix系統(tǒng)里都有l(wèi)sof命令,它常用于以列表的形式顯示所有打開的文件和進(jìn)程.打開的文件包括磁盤文件、網(wǎng)絡(luò)套接字、管道、設(shè)備和進(jìn)程.使用這條命令的主要情形之一就是在無(wú)法掛載磁盤和顯示正在使用或者打開某個(gè)文件的錯(cuò)誤信息的時(shí)候.使用這條命令,你可以很容易地看到正在使用哪個(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
Tcpdump是最廣泛使用的網(wǎng)絡(luò)包分析器或者包監(jiān)控程序之一,它用于捕捉或者過(guò)濾網(wǎng)絡(luò)上指定接口上接收或者傳輸?shù)腡CP/IP包.它還有一個(gè)選項(xiàng)用于把捕捉到的包保存到文件里,以便以后進(jìn)行分析.在幾乎所有主要的Linux發(fā)布里,tcpdump都可以使用.
# tcpdump -i eth0tcpdump: 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
Netstat是一個(gè)用于監(jiān)控進(jìn)出網(wǎng)絡(luò)的包和網(wǎng)絡(luò)接口統(tǒng)計(jì)的命令行工具.它是一個(gè)非常有用的工具,系統(tǒng)管理員可以用來(lái)監(jiān)控網(wǎng)絡(luò)性能,定位并解決網(wǎng)絡(luò)相關(guān)問(wèn)題.
# netstat -a | moreActive 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
Htop 是一個(gè)非常高級(jí)的交互式的實(shí)時(shí)linux進(jìn)程監(jiān)控工具. 它和top命令十分相似,但是它具有更豐富的特性,例如用戶可以友好地管理進(jìn)程,快捷鍵,垂直和水平方式顯示進(jìn)程等等. Htop是一個(gè)第三方工具,它不包含在linux系統(tǒng)中,你需要使用YUM包管理工具去安裝它. 關(guān)于安裝的更多信息,請(qǐng)閱讀下文.
# htop
Iotop命令同樣也非常類似于top命令和Htop程序,不過(guò)它具有監(jiān)控并顯示實(shí)時(shí)磁盤I/O和進(jìn)程的統(tǒng)計(jì)功能.在查找具體進(jìn)程和大量使用磁盤讀寫進(jìn)程的時(shí)候,這個(gè)工具就非常有用.
Iostat是一個(gè)用于收集顯示系統(tǒng)存儲(chǔ)設(shè)備輸入和輸出狀態(tài)統(tǒng)計(jì)的簡(jiǎn)單工具.這個(gè)工具常常用來(lái)追蹤存儲(chǔ)設(shè)備的性能問(wèn)題,其中存儲(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
IPTraf是一個(gè)在Linux控制臺(tái)運(yùn)行的、開放源代碼的實(shí)時(shí)網(wǎng)絡(luò)(局域網(wǎng))監(jiān)控應(yīng)用.它采集了大量信息,比如通過(guò)網(wǎng)絡(luò)的IP流量監(jiān)控,包括TCP標(biāo)記、ICMP詳細(xì)信息、TCP/UDP流量分離、TCP連接包和字節(jié)數(shù).同時(shí)還采集有關(guān)接口狀態(tài)的常見(jiàn)信息和詳細(xì)信息:TCP、UDP、IP、ICMP、非IP,IP校驗(yàn)和錯(cuò)誤,接口活動(dòng)等.
psacct或者acct工具用于監(jiān)視系統(tǒng)里每個(gè)用戶的活動(dòng)狀況.這兩個(gè)服務(wù)進(jìn)程運(yùn)行在后臺(tái),它們對(duì)系統(tǒng)上運(yùn)行的每個(gè)用戶的所有活動(dòng)進(jìn)行近距離監(jiān)視,同時(shí)還監(jiān)視這些活動(dòng)所使用的資源情況.
系統(tǒng)管理員可以使用這兩個(gè)工具跟蹤每個(gè)用戶的活動(dòng),比如用戶正在做什么,他們提交了那些命令,他們使用了多少資源,他們?cè)谙到y(tǒng)上持續(xù)了多長(zhǎng)時(shí)間等等.
Monit是一個(gè)免費(fèi)的開源軟件,也是一個(gè)基于網(wǎng)絡(luò)的進(jìn)程監(jiān)控工具.它能自動(dòng)監(jiān)控和管理系統(tǒng)進(jìn)程,程序,文件,文件夾,權(quán)限,總和驗(yàn)證碼和文件系統(tǒng).
這個(gè)軟件能監(jiān)控像Apache, MySQL, Mail, FTP, ProFTP, Nginx, SSH這樣的服務(wù).你可以通過(guò)命令行或者這個(gè)軟件提供的網(wǎng)絡(luò)借口來(lái)查看系統(tǒng)狀態(tài).
NetHogs是一個(gè)開放源源代碼的很小程序(與Linux下的top命令很相似),它密切監(jiān)視著系統(tǒng)上每個(gè)進(jìn)程的網(wǎng)絡(luò)活動(dòng).同時(shí)還追蹤著每個(gè)程序或者應(yīng)用所使用的實(shí)時(shí)網(wǎng)絡(luò)帶寬.
iftop是另一個(gè)在控制臺(tái)運(yùn)行的開放源代碼系統(tǒng)監(jiān)控應(yīng)用,它顯示了系統(tǒng)上通過(guò)網(wǎng)絡(luò)接口的應(yīng)用網(wǎng)絡(luò)帶寬使用(源主機(jī)或者目的主機(jī))的列表,這個(gè)列表定期更新.iftop用于監(jiān)視網(wǎng)絡(luò)的使用情況,而’top’用于監(jiān)視CPU的使用情況.iftop是’top’工具系列中的一員,它用于監(jiān)視所選接口,并顯示兩個(gè)主機(jī)間當(dāng)前網(wǎng)絡(luò)帶寬的使用情況.
Monitorix 是一個(gè)免費(fèi)的輕量級(jí)應(yīng)用工具,它的設(shè)計(jì)初衷是運(yùn)行和監(jiān)控Linux/Unix服務(wù)器系統(tǒng)和資源等.它有一個(gè)HTTP 網(wǎng)絡(luò)服務(wù)器,這個(gè)服務(wù)器有規(guī)律的收集系統(tǒng)和網(wǎng)絡(luò)的信息并以圖形化的形式展示出來(lái).它監(jiān)控系統(tǒng)的平均負(fù)載和使用,內(nèi)存分配、磁盤健康狀況、系統(tǒng)服務(wù)、網(wǎng)絡(luò)端口、郵件統(tǒng)計(jì)(Sendmail,Postfix,Dovecot等),MySQL統(tǒng)計(jì),等等.它就是用來(lái)監(jiān)控系統(tǒng)的總體性能,幫助發(fā)現(xiàn)失誤、瓶頸和異?;顒?dòng)的.
Arpwatch被設(shè)計(jì)用來(lái)監(jiān)控Linux上的以太網(wǎng)地址解析 (MAC和IP地址的變化).他在一段時(shí)間內(nèi)持續(xù)監(jiān)控以太網(wǎng)活動(dòng)并輸出IP和MAC地址配對(duì)變動(dòng)的日志.它還可以向管理員發(fā)送郵件通知,對(duì)地址配對(duì)的增改發(fā)出警告.這對(duì)于檢測(cè)網(wǎng)絡(luò)上的ARP攻擊很有用.
Suricata 是一個(gè)開源的高性能網(wǎng)絡(luò)安全、入侵檢測(cè)和反監(jiān)測(cè)工具,可以運(yùn)行Linux、FreeBSD和Windows上.非營(yíng)利組織OISF (Open Information Security Foundation)開發(fā)并擁有其版權(quán).
VnStat PHP 是流行網(wǎng)絡(luò)工具”vnstat”的基于web的前端呈現(xiàn).VnStat PHP 將網(wǎng)絡(luò)使用情況呈現(xiàn)在漂亮的圖形界面中.他可以顯示以小時(shí)、日、月計(jì)的上傳和下載流量并輸出總結(jié)報(bào)告.
Nagios是領(lǐng)先而強(qiáng)大的開源監(jiān)控系統(tǒng),他可以讓網(wǎng)絡(luò)/系統(tǒng)管理員在問(wèn)題影響到正常的業(yè)務(wù)之前發(fā)現(xiàn)并解決它們.有了Nagios系統(tǒng),管理員可以在單個(gè)窗口內(nèi)遠(yuǎn)程檢測(cè)Linux、Windows、開關(guān)、路由器和打印機(jī).它可以危險(xiǎn)警告并指出系統(tǒng)/服務(wù)器是否有異常,這可以間接幫助你在問(wèn)題發(fā)生之前采取搶救措施.
我們想知道:你在用什么監(jiān)控程序來(lái)監(jiān)控Linux服務(wù)器的性能呢?如果我們?cè)谏厦驽e(cuò)過(guò)了你認(rèn)為重要的工具,請(qǐng)?jiān)谠u(píng)論中告訴我們,不要忘了分享 它!
本文來(lái)自:開源中國(guó)社區(qū)
原文:http://www.tecmint.com/command-line-tools-to-monitor-linux-performance/
轉(zhuǎn)載請(qǐng)注明本頁(yè)網(wǎng)址:
http://www.fzlkiss.com/jiaocheng/4552.html