資源描述:
《Linux系統(tǒng)與程序監(jiān)控工具atop教程》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。
1、Linux系統(tǒng)與程序監(jiān)控工具atop教程引言Linux以其穩(wěn)定性,越來越多地被用作服務(wù)器的操作系統(tǒng)(當(dāng)然,有人會較真地說一句:Linux只是操作系統(tǒng)內(nèi)核:)。但使用了Linux作為底層的操作系統(tǒng),是否我們就能保證我們的服務(wù)做到7*24地穩(wěn)定呢?非也,要知道業(yè)務(wù)功能是由系統(tǒng)上跑的程序?qū)崿F(xiàn)的,要實現(xiàn)業(yè)務(wù)功能的穩(wěn)定性,選擇Linux只是邁出的第一步,我們更多地工作是不讓業(yè)務(wù)程序成為穩(wěn)定性的短板。?當(dāng)我們的服務(wù)器出現(xiàn)問題的時候,外在的表現(xiàn)是業(yè)務(wù)功能不能正常提供,內(nèi)在的原因,從程序的角度看,可能是業(yè)務(wù)程序的問題(程
2、序自身的bug),也可能是服務(wù)器上人為的誤操作(不當(dāng)?shù)貓?zhí)行腳本或命令);從系統(tǒng)資源的角度看,可能是CPU搶占、內(nèi)存泄漏、磁盤IO讀寫異常、網(wǎng)絡(luò)異常等。出現(xiàn)問題后,面對各種各樣可能的原因,我們應(yīng)如何著手進行分析?我們有什么工具進行問題定位嗎?atop簡介本文要介紹的atop就是一款用于監(jiān)控Linux系統(tǒng)資源與進程的工具,它以一定的頻率記錄系統(tǒng)的運行狀態(tài),所采集的數(shù)據(jù)包含系統(tǒng)資源(CPU、內(nèi)存、磁盤和網(wǎng)絡(luò))使用情況和進程運行情況,并能以日志文件的方式保存在磁盤中,服務(wù)器出現(xiàn)問題后,我們可獲取相應(yīng)的atop日志
3、文件進行分析。atop是一款開源軟件,我們可以從這里獲得其源碼和rpm安裝包。atop使用方法在安裝atop之后,我們在命令行下敲入”atop"命令即可看到系統(tǒng)當(dāng)前的運行情況:系統(tǒng)資源監(jiān)控字段含義上圖中列出了不少字段以及數(shù)值,各字段的含義是什么?我們應(yīng)該怎么看?以上每個字段的含義都是相對采樣周期而言的,下面我們先來關(guān)注上圖顯示的上半部分。ATOP列:該列顯示了主機名、信息采樣日期和時間點PRC列:該列顯示進程整體運行情況1.sys、usr字段分別指示進程在內(nèi)核態(tài)和用戶態(tài)的運行時間2.#proc字段指示進程
4、總數(shù)3.#zombie字段指示僵死進程的數(shù)量4.#exit字段指示atop采樣周期期間退出的進程數(shù)量CPU列:該列顯示CPU整體(即多核CPU作為一個整體CPU資源)的使用情況,我們知道CPU可被用于執(zhí)行進程、處理中斷,也可處于空閑狀態(tài)(空閑狀態(tài)分兩種,一種是活動進程等待磁盤IO導(dǎo)致CPU空閑,另一種是完全空閑)1.sys、usr字段指示CPU被用于處理進程時,進程在內(nèi)核態(tài)、用戶態(tài)所占CPU的時間比例2.irq字段指示CPU被用于處理中斷的時間比例3.idle字段指示CPU處在完全空閑狀態(tài)的時間比例4.w
5、ait字段指示CPU處在“進程等待磁盤IO導(dǎo)致CPU空閑”狀態(tài)的時間比例CPU列各個字段指示值相加結(jié)果為N00%,其中N為cpu核數(shù)。cpu列:該列顯示某一核cpu的使用情況,各字段含義可參照CPU列,各字段值相加結(jié)果為100%CPL列:該列顯示CPU負(fù)載情況1.avg1、avg5和avg15字段:過去1分鐘、5分鐘和15分鐘內(nèi)運行隊列中的平均進程數(shù)量2.csw字段指示上下文交換次數(shù)3.intr字段指示中斷發(fā)生次數(shù)MEM列:該列指示內(nèi)存的使用情況1.tot字段指示物理內(nèi)存總量2.free字段指示空閑內(nèi)存的
6、大小3.cache字段指示用于頁緩存的內(nèi)存大小4.buff字段指示用于文件緩存的內(nèi)存大小5.slab字段指示系統(tǒng)內(nèi)核占用的內(nèi)存大小SWP列:該列指示交換空間的使用情況1.tot字段指示交換區(qū)總量2.free字段指示空閑交換空間大小PAG列:該列指示虛擬內(nèi)存分頁情況swin、swout字段:換入和換出內(nèi)存頁數(shù)DSK列:該列指示磁盤使用情況,每一個磁盤設(shè)備對應(yīng)一列,如果有sdb設(shè)備,那么增多一列DSK信息1.sda字段:磁盤設(shè)備標(biāo)識2.busy字段:磁盤忙時比例3.read、write字段:讀、寫請求數(shù)量NE
7、T列:多列NET展示了網(wǎng)絡(luò)狀況,包括傳輸層(TCP和UDP)、IP層以及各活動的網(wǎng)口信息1.XXXi?字段指示各層或活動網(wǎng)口收包數(shù)目2.XXXo字段指示各層或活動網(wǎng)口發(fā)包數(shù)目進程視圖為了更全面地展示進程信息,atop提供了多種進程視圖。?默認(rèn)視圖(Genericinformation)進入atop信息界面,我們看到的就是進程信息的默認(rèn)視圖(上圖下半部分),按g鍵可以從其他視圖跳到默認(rèn)視圖。從上圖中,我們可以看到PID為3061的find進程在退出前在內(nèi)核模式下占用了3.43秒CPU時間,在用戶模式下占用了
8、0.96秒CPU時間,共使用CPU時間為4.39秒,相對10分鐘采樣周期,CPU時間占用比例為1%,ST列表示進程狀態(tài),N表示該進程是前一個采樣周期新生成的進程,E表示該進程已退出,EXC列指示進程的退出碼。從進程名在“<>”符號中,我們亦可知該進程已退出。?內(nèi)存視圖(Memoryconsumption)內(nèi)存視圖展示了進程使用內(nèi)存情況,按m鍵可進入內(nèi)存視圖。上圖下半部分展示了每個進程占用的虛擬內(nèi)存空間(VSIZE)、內(nèi)存空間(