對(duì)于每個(gè)系統(tǒng)管理員或網(wǎng)絡(luò)管理員來(lái)說(shuō),每天要監(jiān)控和調(diào)試 Linux 系統(tǒng)性能問(wèn)題都是非常困難的工作。我已經(jīng)有5年 Linux 管理員的工作經(jīng)歷,知道如何監(jiān)控系統(tǒng)使其保持正常運(yùn)行。為此,我們編寫(xiě)了對(duì)于 Linux/Unix 系統(tǒng)管理員非常有用的并且最常用的20個(gè)命令行系統(tǒng)監(jiān)視工具。這些命令可以在所有版本的 Linux 下使用去監(jiān)控和查找系統(tǒng)性能的實(shí)際原因。這些監(jiān)控命令足夠你選擇適合你的監(jiān)控場(chǎng)景。
1. top —Linux系統(tǒng)進(jìn)程監(jiān)控
top 命令是性能監(jiān)控程序,它可以在很多 Linux/Unix 版本下使用,并且它也是 Linux 系統(tǒng)管理員經(jīng)常使用的監(jiān)控系統(tǒng)性能的工具。Top 命令可以定期顯示所有正在運(yùn)行和實(shí)際運(yùn)行并且更新到列表中,它顯示出 CPU 的使用、內(nèi)存的使用、交換內(nèi)存、緩存大小、緩沖區(qū)大小、過(guò)程控制、用戶(hù)和更多命令。它也會(huì)顯示內(nèi)存和 CPU 使用率過(guò)高的正在運(yùn)行的進(jìn)程。當(dāng)我們對(duì) Linux 系統(tǒng)需要去監(jiān)控和采取正確的行動(dòng)時(shí),top 命令對(duì)于系統(tǒng)管理員是非常有用的。讓我們看下 top 命令的實(shí)際操作。
# top
2. vmstat — 虛擬內(nèi)存統(tǒng)計(jì)
linux 的vmstat命令用于顯示虛擬內(nèi)存、內(nèi)核線(xiàn)程、磁盤(pán)、系統(tǒng)進(jìn)程、i/o 塊、中斷、cpu 活動(dòng) 等的統(tǒng)計(jì)信息。
java線(xiàn)程之間的通信總是隱式進(jìn)行 java并發(fā)模型—硬件視圖 內(nèi)存空間 共享對(duì)象 共享對(duì)象 共享對(duì)象 內(nèi)存中的jvm 對(duì)象在線(xiàn) 程之間共享 線(xiàn)程1 線(xiàn)程2 處理器a 處理器b 處理器c 處理器d java并發(fā)模型—操作系統(tǒng)視圖 jvm進(jìn)程 hotspot vm中, java線(xiàn)程被一對(duì)一 java線(xiàn)程 java線(xiàn)程 java線(xiàn)程 映射為本地操作系 統(tǒng)線(xiàn)程 linux kernel 操作系統(tǒng)內(nèi)核 直接調(diào)度java 線(xiàn)程給可用的cpu處理器a 處理器b 處理器c 處理器d 編譯器和處理器喜歡不擇手段的冒險(xiǎn)源代碼 編譯器優(yōu)化 指令級(jí)并行 內(nèi)存系統(tǒng)的 最終執(zhí)行的 的重排序 的重排序 重排序 指令序列 編譯器的 重排序 重排序 指令級(jí)并行的 處理器的 重排序 重排序 內(nèi)存系統(tǒng)的 重排序 順序一致性?xún)?nèi)存模型的原型結(jié)構(gòu) 處理器a 處理器b 處理器c 處理器c a3 b2 c4 d1 程序順 a2 b1 c3 d2 序不變 a1 c2 每個(gè)內(nèi)存 c1 單元一個(gè) fifo隊(duì)列內(nèi)存單元 1 2 3 4 5 6 7 8 9 10 11 12 13 … … n順序一致性?xún)?nèi)存模型的程序員視圖 線(xiàn)程 線(xiàn)程 線(xiàn)程 線(xiàn)程 … 2 3 n 1 內(nèi)存 順序一致性?xún)?nèi)存模型的2 大特性 特性2 線(xiàn)程a 的程序順序 操作的執(zhí)行整體上無(wú)序,但兩個(gè)線(xiàn)程 都只能看到這個(gè)執(zhí)行順序。
centos 6 發(fā)行版中的內(nèi)核已經(jīng)包含了 mppe模塊,不需要再去安裝配置動(dòng)態(tài)內(nèi)核加載(dkms ) 和 kernel_ppp_mppe 模塊,具體的配置如下:。
系統(tǒng)線(xiàn)程(內(nèi)核線(xiàn)程、內(nèi)核態(tài))和用戶(hù)線(xiàn)程的區(qū)別。
# 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 — 打開(kāi)文件列表
lsof 命令對(duì)于很多 Linux/Unix 系統(tǒng)都可以使用,主要以列表的形式顯示打開(kāi)的文件和進(jìn)程。