對每個系統/網路系統管理員來說,每天監測Linux系統效能是一項非常艱巨的任務。在IT業從事5年的Linux系統管理員後,我發現監控和保持系統正常運行真不是件容易的事,為此,我總結了8個非常實用的命令列工具給Linux/Unix系統管理員。這些命令支援所有的Linux系統,不僅可以用於監控系統,還可以發現導致效能問題的原因所在。下面提供的8個命令足夠你選擇其中一個用於你的情境中。
1.TOP——Linux進程監控
Linux的top命令是一個效能監控程式,許多Linux系統管理員經常使用它來監測系統效能,top命令會把所有正在啟動並執行即時進程用列表的形式顯示出來並且會定時更新。它會顯示CPU使用量、記憶體使用量量、交換記憶體、緩衝大小、緩衝區大小、流程PID、使用者、命令等。它也顯示正在啟動並執行高記憶體進程和CPU利用率。系統管理員使用top進行監控是非常有用的,並且可以協助管理員在必要時採取正確的措施。下面讓我們來看看top命令的實際使用效果吧!
- # top
TOP命令更多使用樣本,可以閱讀:top命令在Linux上的12個使用案例
2.VMSTAT——虛擬記憶體統計
Linux的vmstat命令用於顯示虛擬記憶體統計,kernerl線程、磁碟、系統進程、I/O模組、中斷、CPU活動等。預設情況下,需要在Linux系統上安裝一個sysstat包才可以使用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
關於vmstat命令更多使用樣本,請閱讀:vmstat在Linux中的6個使用案例
3.LSOF——列出開啟的檔案
lsof命令和許多Linux/Unix系統命令一樣,用於顯示所有開啟檔案和進程。這些開啟檔案包括磁碟檔案、網路通訊端、管道、裝置和進程。使用它最主要的原因是在卸載檔案系統時,如果該檔案系統中有任何開啟的檔案,操作通常將會失敗,那麼通過lsof可以找出哪些進程在使用,此命令最常用的格式如下:
- # 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
更多lsof使用說明請閱讀:lsof命令在Linux中的10個使用案例
4.TCPDUMP——網路資料包分析器
tcpdump是使用最廣泛的命令列——網路資料包分析器或資料包嗅探器程式,用來捕獲或過濾從網路特定介面接收到或者轉移的TCP/IP資料包。它還把捕獲到的包儲存到一個檔案夾中。tcpdump可以在所有主要的Linux發行版上使用。
- # 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
更多tcpdump使用案例,請閱讀:tcpdump命令在Linux系統中的12個使用案例
5.NETSTAT——網路統計
netstat是一個命令列工具,用於監視傳入和傳出的網路資料包資訊和介面資訊統計。系統管理員使用它進行監控網路效能和對網路相關問題進行故障排除是非常有用的。
- # 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
更多netstat使用案例,請閱讀:netstat在Linux上的20個使用案例
6.HTOP——Linux進程監測
Htop是一個更先進的互動性和即時性的Linux進程監控工具。這個命令與top命令非常相似,但它的功能更加豐富,如友好的使用者介面進程管理、快速鍵、垂直和水平視圖進程等。Htop是一個第三方外掛程式工具,你需要使用YUM軟體包管理工具在Linux系統上安裝才可以使用。
HTOP安裝說明:在Linux中安裝HTOP(Linux進程監測)
7.lotop——監控Linux磁碟I/O
Lotop與top命令和Htop程式很相似,但它具有統計功能,即時監測和顯示磁碟I/O。這個工具對精確進程和發現高使用量的讀/寫進程非常有用的。
Loptop安裝使用說明:在Linux中安裝loptop
8.iostat——輸入/輸出統計
iostat是一個非常簡單的工具,用於收集和顯示系統輸入和輸出存放裝置統計資訊。這個工具通常用於跟蹤存放裝置的效能問題,包括裝置、本地磁碟、遠程磁碟比如NFS。
- # 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
更多iostat使用樣本和說明,閱讀:iostat命令在Linux上的6個使用案例(張紅月/編譯)
原文:Tecmint