Linux服務(wù)器的16個(gè)監(jiān)控命令
想不想知道你的服務(wù)器到底在干什么?那么你要知道本文介紹的這些基本命令。一旦你熟悉掌握了這些命令,就為成為專業(yè)的 Linux系統(tǒng)管理員打下了基礎(chǔ)。
本文引用地址:http://2s4d.com/article/201610/306033.htm你可以通過(guò)圖形化用戶界面(GUI)程序來(lái)獲取這些外殼命令提供的大量信息,具體取決于使用哪一種Linux發(fā)行版。比如說(shuō),SUSE Linux就有一款出色的、圖形化配置和管理工具YaST,KDE的KDE System Guard同樣很出色。
不過(guò),Linux管理員要明白的一個(gè)常理是:只有絕對(duì)必要時(shí),才應(yīng)該在服務(wù)器上運(yùn)行GUI。那是由于,Linux GUI耗用系統(tǒng)資源,而這些資源原本可以更合理地用在其他地方。所以,盡管使用GUI程序很適合對(duì)服務(wù)器健康狀況做一個(gè)基本的檢查,但是如果你想知道到底發(fā)生了什么,請(qǐng)關(guān)閉GUI,開(kāi)始從Linux命令外殼使用這些工具。
這還意味著,只要在需要時(shí),你才應(yīng)該在服務(wù)器上開(kāi)啟GUI;不用的時(shí)候,就及時(shí)關(guān)掉。為了確保性能最佳,Linux服務(wù)器應(yīng)該在運(yùn)行級(jí)別(runlevel)3下運(yùn)行,這個(gè)運(yùn)行級(jí)別完全支持網(wǎng)絡(luò)和多個(gè)用戶,但是在機(jī)器啟動(dòng)時(shí),又不開(kāi)啟GUI。如果你果真需要圖形化桌面,總是可以從外殼提示符下運(yùn)行startx,獲得圖形化桌面。
如果你的服務(wù)器啟動(dòng)后進(jìn)入到圖形化桌面,就需要更改這種情況。為此,進(jìn)入到終端窗口,使用su命令切換到root用戶,然后用你常用的編輯器打開(kāi)/etc/inittab文件。
一旦進(jìn)入到文件里面,找到initdefault這一行,將id:5:initdefault:改為id:3:initdefault:。
要是沒(méi)有/etc/inittab文件,就創(chuàng)建一個(gè),并添加id:3這一行。保存后退出。下次你啟動(dòng)進(jìn)入服務(wù)器時(shí),它會(huì)啟動(dòng)進(jìn)入到運(yùn)行級(jí)別3。如果你不想在進(jìn)行這種更改后重啟,也可以用命令init 3,立即設(shè)置服務(wù)器的運(yùn)行級(jí)別。
一旦你的服務(wù)器在init 3下運(yùn)行,就可以開(kāi)始使用下列外殼程序,看看你的服務(wù)器里面出現(xiàn)了什么情況。
iostat
iostat 命令詳細(xì)地顯示了存儲(chǔ)子系統(tǒng)方面的情況。你通常用iostat來(lái)監(jiān)控存儲(chǔ)子系統(tǒng)總體上運(yùn)行狀況如何,并且在用戶注意到服務(wù)器運(yùn)行緩慢之前提早發(fā)現(xiàn)輸入/輸出緩慢的問(wèn)題。相信我,你應(yīng)該在用戶發(fā)現(xiàn)這些問(wèn)題之前先發(fā)現(xiàn)這些問(wèn)題!
meminfo和free
meminfo為你詳細(xì)顯示了內(nèi)存方面的情況。你通??梢允褂昧硪粋€(gè)程序,比如cat和grep,來(lái)訪問(wèn)meminfo的信息。比如說(shuō),cat /proc/meminfo為你詳細(xì)顯示了服務(wù)器的內(nèi)存在任何一個(gè)時(shí)間的使用情況。
如果想快速了解內(nèi)存的概要信息,可以使用free命令。簡(jiǎn)而言之,free為你提供了概要信息;meminfo為你提供了詳細(xì)信息。
mpstat
mpstat命令可以報(bào)告多處理器服務(wù)器上每個(gè)可用處理器的活動(dòng)情況。如今,由于多核處理器,這個(gè)命令適用于幾乎所有服務(wù)器。mpstat還可以報(bào)告所有服務(wù)器上的處理器的平均活動(dòng)情況。它讓你能夠按照系統(tǒng)或按照處理器來(lái)顯示總的處理器統(tǒng)計(jì)信息。這個(gè)概要信息可以在潛在的應(yīng)用程序問(wèn)題惹毛用戶之前提醒你注意。
netstat
netstat與ps一樣,也是Linux管理員每天都使用的Linux工具。它顯示了與網(wǎng)絡(luò)有關(guān)的大量信息,比如套接口使用情況、路由、接口、協(xié)議、網(wǎng)絡(luò)統(tǒng)計(jì)信息及更多信息。最常用的一些選項(xiàng)如下:
-a 顯示套接口的所有信息
-r 顯示路由信息
-i 顯示網(wǎng)絡(luò)接口的統(tǒng)計(jì)信息
-s 顯示網(wǎng)絡(luò)協(xié)議的統(tǒng)計(jì)信息
nmon
nmon是Nigel’s Monitor的簡(jiǎn)稱,這款廣受歡迎的開(kāi)源工具用來(lái)監(jiān)控Linux系統(tǒng)的性能。nmon可以監(jiān)控多個(gè)子系統(tǒng)的性能信息,比如處理器使用率、內(nèi)存使用率、運(yùn)行隊(duì)列的信息、磁盤輸入/輸出統(tǒng)計(jì)信息、網(wǎng)絡(luò)輸入/輸出統(tǒng)計(jì)信息、內(nèi)存分頁(yè)活動(dòng)和進(jìn)程衡量指標(biāo)。然后,你可以通過(guò)curses“圖形化”界面,查看nmon的實(shí)時(shí)系統(tǒng)衡量結(jié)果。
想運(yùn)行nmon,你可以從外殼來(lái)啟動(dòng)該工具。一旦啟動(dòng),只要輸入單鍵命令,就可以選擇要監(jiān)控的子系統(tǒng)。比如說(shuō),想獲得處理器、內(nèi)存和磁盤等方面的統(tǒng)計(jì)信息,只要分別輸入c、m和d。也可以使用帶-f標(biāo)志的nmon,將性能統(tǒng)計(jì)信息保存到CSV文件中,以便日后分析。
就日常的服務(wù)器監(jiān)控而言,我覺(jué)得nmon是我的Linux系統(tǒng)管理工具包中最有用的一個(gè)程序。
pmap
pmap命令用來(lái)報(bào)告服務(wù)器的進(jìn)程所使用的內(nèi)存量。你可以用這個(gè)工具來(lái)確定服務(wù)器上哪些進(jìn)程被分配了內(nèi)存、這些進(jìn)程中有誰(shuí)在大量使用內(nèi)存。
ps和pstree
ps和pstree這兩個(gè)命令是Linux系統(tǒng)管理員的兩個(gè)得力助手。它們都能以列表的形式顯示所有目前在運(yùn)行的進(jìn)程。ps可以告訴你服務(wù)器的程序在使用多少的內(nèi)存和處理器時(shí)間。pstree顯示的信息比較少,但著重表明了哪些進(jìn)程是其他進(jìn)程的子進(jìn)程。掌握了這些信息,你就能發(fā)現(xiàn)失控的進(jìn)程,然后用Linux“不留活口”的kill命令,來(lái)終止這些進(jìn)程。
sar
sar程序好比是系統(tǒng)監(jiān)控工具領(lǐng)域的瑞士軍刀。sar命令實(shí)際上由三個(gè)程序組成:顯示數(shù)據(jù)的sar、收集數(shù)據(jù)的sa1以及保存數(shù)據(jù)的sa2。一旦安裝完畢,sar就能生成詳細(xì)的概要信息,顯示處理器使用率、內(nèi)存分頁(yè)活動(dòng)、網(wǎng)絡(luò)輸入/輸出和傳輸方面的統(tǒng)計(jì)信息、進(jìn)程創(chuàng)建活動(dòng)以及磁盤設(shè)備活動(dòng)。sar和nmon的一大區(qū)別在于,前者更適合長(zhǎng)期監(jiān)控系統(tǒng),我覺(jué)得nmon則比較適合幫助我快速查看服務(wù)器的運(yùn)行狀況。
strace
strace 經(jīng)常被認(rèn)為是程序員的調(diào)試工具,但它的功用不僅僅用來(lái)調(diào)試。它可以截獲和記錄進(jìn)程調(diào)用系統(tǒng)的情況。因而,它是一個(gè)實(shí)用的診斷、教學(xué)和調(diào)試工具。比如說(shuō),你可以使用strace來(lái)查出某個(gè)程序在啟動(dòng)時(shí)實(shí)際上使用哪個(gè)配置文件。
不過(guò)strace的確有一個(gè)缺陷。它在檢查某個(gè)進(jìn)程時(shí),該進(jìn)程的性能會(huì)一落千丈。因而,只有在我已經(jīng)有極其充分的理由認(rèn)為某個(gè)程序引起問(wèn)題的情況下,才使用strace。
tcpdump
tcpdump是一個(gè)簡(jiǎn)單而可靠的網(wǎng)絡(luò)監(jiān)控實(shí)用工具。其基本的協(xié)議分析功能讓你能夠粗略查看網(wǎng)絡(luò)上的情況。不過(guò)想真正深入分析網(wǎng)絡(luò)方面的情況,你應(yīng)該使用Wireshark(下面有介紹)。
top
top命令顯示了活動(dòng)進(jìn)程方面的情況。默認(rèn)情況下,它顯示了服務(wù)器上運(yùn)行的最消耗處理器的任務(wù),而且每5秒鐘就刷新一次列表。你還可以按多個(gè)標(biāo)準(zhǔn)對(duì)進(jìn)程進(jìn)行分類,比如PID(進(jìn)程ID);年限,最新的列在最前面;時(shí)間,按累計(jì)時(shí)間;以及駐留內(nèi)存使用情況和自啟動(dòng)以來(lái)一直使用處理器的總時(shí)間。我覺(jué)得它提供了一種快速而簡(jiǎn)易的方法,便于查看有沒(méi)有進(jìn)程開(kāi)始即將失控、帶來(lái)問(wèn)題。
uptime
uptime可用來(lái)查看某臺(tái)服務(wù)器運(yùn)行了多久、有多少個(gè)用戶登錄上去。它還顯示了服務(wù)器平均負(fù)載的概要信息。負(fù)載的最佳值是1或更小,這意味著每個(gè)進(jìn)程可以立即訪問(wèn)處理器、不存在處理器周期丟失的情況。
vmstat
大體上來(lái)說(shuō),你可以使用vmstat來(lái)監(jiān)控虛擬內(nèi)存方面的情況。Linux不斷使用虛擬內(nèi)存,以獲得最佳的存儲(chǔ)性能。
如果你的應(yīng)用程序在占用過(guò)多的內(nèi)存,你就會(huì)遇到頻繁被換出內(nèi)存(page-out)的情況——即程序從內(nèi)存進(jìn)入到系統(tǒng)硬驅(qū)上的交換空間。你的服務(wù)器可能會(huì)進(jìn)入到這個(gè)階段:花在管理內(nèi)存分頁(yè)上的時(shí)間比花在運(yùn)行應(yīng)用程序上的時(shí)間還多——這種情況被稱為抖動(dòng)(thrashing)。當(dāng)你的電腦抖動(dòng)時(shí),性能就一落千丈。Vmstat可以顯示平均的數(shù)據(jù)或?qū)嶋H樣本,可以幫助你發(fā)覺(jué)大量耗用內(nèi)存的程序和進(jìn)程,以免它們導(dǎo)致服務(wù)器運(yùn)行起來(lái)如同蝸牛緩行。
Wireshark
Wireshark之前名為Ethereal(而且現(xiàn)在仍經(jīng)常這么叫),是tcpdump的同類工具,不過(guò)它更為高級(jí),擁有先進(jìn)得多的協(xié)議分析和報(bào)告功能。Wireshark既有GUI界面,又有外殼界面。如果你從事專業(yè)級(jí)的網(wǎng)絡(luò)管理工作,只能使用ethereal。而如果你在使用Wireshark/ethereal,我強(qiáng)烈建議閱讀Chris Sander所著的《實(shí)用數(shù)據(jù)包分析》(Practical Packet Analysis),該書(shū)深入淺出地介紹了如何最充分地利用這款實(shí)用程序。
本文只是從總體上概述了一些Linux最有價(jià)值的系統(tǒng)監(jiān)控程序。不過(guò),如果你熟練掌握了這些程序,就為成為頂尖的 Linux系統(tǒng)管理員打下了基礎(chǔ)。
評(píng)論