別小看這10個(gè)命令行工具,助你實(shí)現(xiàn)實(shí)時(shí) Linux 系統(tǒng)性能監(jiān)控
系統(tǒng)一旦跑起來,我們就希望它能夠穩(wěn)定運(yùn)行,不要宕機(jī),不出現(xiàn)速度變慢。因此,對(duì)于Linux 系統(tǒng)管理員來說每天監(jiān)控和調(diào)試 Linux 系統(tǒng)的性能問題是一項(xiàng)繁重卻又重要的工作。監(jiān)控和保持系統(tǒng)啟動(dòng)并運(yùn)行是很不容易的一件事。
下面是小編總結(jié)的十個(gè)實(shí)用的 Linux 系統(tǒng)監(jiān)控命令,讓你輕松保持系統(tǒng)的實(shí)時(shí)性能監(jiān)控。
一、uptime命令
uptime命令可以查看系統(tǒng)總共運(yùn)行了多長(zhǎng)時(shí)間和系統(tǒng)的平均負(fù)載。
顯示的信息顯示依次為:
- 現(xiàn)在時(shí)間
- 系統(tǒng)已經(jīng)運(yùn)行了多長(zhǎng)時(shí)間
- 目前有多少登陸用戶
- 系統(tǒng)在過去的1分鐘、5分鐘和15分鐘內(nèi)的平均負(fù)載
通過這些數(shù)據(jù)我們可以清晰的看出來服務(wù)器的負(fù)載是在趨于緊張還是趨于緩解的狀態(tài)。
二、vmstat 命令
vmstat命令的含義為顯示虛擬內(nèi)存狀態(tài),但是它可以報(bào)告關(guān)于進(jìn)程、內(nèi)存、I/O等系統(tǒng)整體運(yùn)行狀態(tài)。
每2秒獲取一次數(shù)據(jù)
- #>vmstat 2
上圖中,我們可以看出來vmstat命令,會(huì)輸出系統(tǒng)的核心指標(biāo),我們可以更加詳細(xì)的了解服務(wù)器的性能情況。
三、pidstat 命令
pidstat命令用來監(jiān)控被 Linux 內(nèi)核管理的獨(dú)立任務(wù)(進(jìn)程)。它輸出每個(gè)受內(nèi)核管理的任務(wù)的相關(guān)信息。pidstat命令也可以用來監(jiān)控特定進(jìn)程的子進(jìn)程。間隔參數(shù)用于指定每次報(bào)告間的時(shí)間間隔。
使用pidstat不加任何參數(shù)等價(jià)于加上-p參數(shù),但是只有正在活動(dòng)的任務(wù)會(huì)被顯示出來。
I/O 統(tǒng)計(jì)數(shù)據(jù):
- # pidstat -d -p 8472
IO 輸出會(huì)顯示一些內(nèi)的條目:
- kB_rd/s - 任務(wù)從硬盤上的讀取速度(kb)
- kB_wr/s - 任務(wù)向硬盤中的寫入速度(kb)
- kB_ccwr/s - 任務(wù)寫入磁盤被取消的速率(kb)
監(jiān)測(cè)內(nèi)存使用:
- # pidstat -r 2 5
會(huì)顯示5份關(guān)于page faults的統(tǒng)計(jì)數(shù)據(jù)結(jié)果,間隔2秒。這將會(huì)更容易的定位出現(xiàn)問題的進(jìn)程。
四、free -m 命令
free -m 命令相對(duì)于top 提供了更簡(jiǎn)潔的查看系統(tǒng)內(nèi)存使用情況
第一部分Mem行:
- total 內(nèi)存總數(shù): 378M
- used 已經(jīng)使用的內(nèi)存數(shù): 163M
- free 空閑的內(nèi)存數(shù): 215M
- shared 當(dāng)前已經(jīng)廢棄不用,總是0
- buffers Buffer 緩存內(nèi)存數(shù): 11M
- cached Page 緩存內(nèi)存數(shù):57M
可用內(nèi)存計(jì)算公式:
可用內(nèi)存 =free +buffers +cached, 實(shí)際操作即:215 +11+57 =253MB;
五、 top 命令
top命令很常用,在第三行有顯示CPU當(dāng)前的使用情況。
字段說明:
- PID:進(jìn)程標(biāo)示號(hào)
- USER:進(jìn)程所有者
- PR:進(jìn)程優(yōu)先級(jí)
- NI:進(jìn)程優(yōu)先級(jí)別數(shù)值
- VIRT:進(jìn)程占用的虛擬內(nèi)存值
- RES:進(jìn)程占用的物理內(nèi)存值
- SHR :進(jìn)程使用的共享內(nèi)存值
- S :進(jìn)程的狀態(tài),其中S表示休眠,R表示正在運(yùn)行,Z表示僵死
- %CPU :進(jìn)程占用的CPU使用率
- %MEM :進(jìn)程占用的物理內(nèi)存百分比
- TIME+:進(jìn)程啟動(dòng)后占用的總的CPU時(shí)間
- Command:進(jìn)程啟動(dòng)的啟動(dòng)命令名稱
六、 其他指令
- 「sar -n DEV 1」:可以查看網(wǎng)絡(luò)設(shè)備的吞吐率,吞吐量可以判斷是被是否飽和,是檢查服務(wù)器性能的一個(gè)重要指標(biāo)。
- 「sar –n TCP,ETCP 1」:用于查看TCP連接狀態(tài)以及連接數(shù)量。其中,TCP的連接數(shù)量可以用來判斷服務(wù)器的性能如何,同時(shí)還能夠判斷誰(shuí)是主動(dòng)連接,誰(shuí)是被動(dòng)連接。
- 「Iostatb –xz 1」:主要用于查看服務(wù)器的磁盤IO情況,看是否有滿負(fù)荷運(yùn)轉(zhuǎn)的情況發(fā)生。
- 「Dmesg | tail」:用于輸出查看日志使用,這些日志可以幫助我們排查性能的問題。