Linux 基礎教程 36-查看系統(tǒng)性能

uptime

? ? uptime命令功能比較簡單坪创,主要功能如下所示:

  • 查看服務器的開機時長
  • 查看CPU負載

基本用法

uptime

用法示例

[root@localhost ~]# uptime
15:33:08 up 10 days,  4:40,  2 users,  load average: 1.56, 1.22, 0.92

輸出內容解釋如下所示:

顯示內容 解釋
15:33:08 系統(tǒng)當前時間
up 10 days, 4:40 主機已運行時間定嗓,時間越長,說明機器越穩(wěn)定
2 users 用戶連接數(shù)挣轨,是總連接數(shù)而不是用戶數(shù)
load average: 1.56, 1.22, 0.92 系統(tǒng)平均負載,統(tǒng)計最近1轩猩、5卷扮、15分鐘的系統(tǒng)平均負載

系統(tǒng)平均負載:指在某一段時間間隔內運行隊列中的平均進程數(shù)。根據實際工程經驗來看均践,單核負載在 0.7 以下是安全的晤锹,如超過則需要進行優(yōu)化了。

除了使用uptime外彤委,我們也可以使用以下方式來獲取系統(tǒng)的平均負載情況鞭铆。

[root@localhost ~]# cat /proc/loadavg
1.32 1.35 1.15 1/5585 28715
  • 前面3個數(shù)字分別表示最近1、5焦影、15分鐘的系統(tǒng)平均負載
  • 1/5585:分母表示系統(tǒng)的總進程數(shù)车遂,分子表示正在運行的進程數(shù)
  • 28715:最近一個啟動運行進程的ID

free

? ? free常用來查看系統(tǒng)的可用內存和已使用內存等信息。

基本用法

free [選項]

常用選項如下所示:

選項 解釋
-b 以byte為單位顯示內存使用情況
-k 以KB為單位顯示內存使用情況
-m 以MB為單位顯示內存使用情況
-g 以GB為單位顯示內存使用情況
-t 額外顯示內存總和
-h 以較短的數(shù)字(默認為3位數(shù))進行顯示且增加單位椒涯,方便查看
-s time 持續(xù)觀察內存使用情況
-c count 常與-s一直使用藏姐,用來設置采樣樣本數(shù)
-l 詳細顯示高峰和低谷時的內存使用統(tǒng)計情況
采用-k/-m/-g/-h顯示的值均采用向下取整的方式顯示寇荧,如果需要精確查看署尤,則建議使用-b

用法示例

1箕别、顯示主機內存使用情況

[root@localhost ~]# free -t -m
      total        used        free      shared  buff/cache   available
Mem:  128652       32106       87049     1293      9496       94266
Swap: 4095           0         4095
Total:132748       32106       91145

輸出內解釋如下所示:

total:可用物理內存總量
used:已經使用的內存數(shù)铜幽,包含buff/cache
free:可使用的內存數(shù)滞谢,不含buff/cache
share:多個進程共享的內存數(shù)
buff/cache:buff/cache占用量
Swap:交換分區(qū)使用量,虛擬內存
Total:物理內存總數(shù)

vmstat

? ? vmstat是一個Linux監(jiān)控工具除抛,全稱為Virtual Memory Statistics狮杨。可用于查看關于進程到忽、內存橄教、I/O、等系統(tǒng)整體運行狀態(tài)喘漏。

基本用法

vmstat [選項] [采樣間隔] [采樣樣本數(shù)]

常用選項如下所示:

選項 解釋
-a 顯示活動/非活動的內存信息
-f 顯示自系統(tǒng)啟動以來的系統(tǒng)創(chuàng)建的總任務數(shù)
-t 增加時間戳
-m 顯示slabinfo信息
-n 頭部信息僅顯示一次
-s 以表格形式顯示內存指標及系統(tǒng)事件信息等
-d 顯示各磁盤的統(tǒng)計信息
-p 顯示特定分區(qū)的詳細統(tǒng)計信息
delay 設置兩次更新之間的時間間隔护蝶,如果不指定,則默認顯示從開機到現(xiàn)在的平均值
count 指定采樣的樣本數(shù)翩迈,如delay指定而count不指定則一直持續(xù)監(jiān)控和輸出

用法示例

1持灰、常用用法

vmstat delay count
- delay:采樣時間間隔
- count:采樣的樣本數(shù)
01vmstat詳細解釋.jpg

2、查看服務器創(chuàng)建了多少個任務數(shù)

[root@localhost ~]# vmstat -f
     51221915 forks

3帽馋、顯示特定分區(qū)的統(tǒng)計信息:

[root@localhost ~]# vmstat -p /dev/sdb1
sdb1          reads   read sectors  writes    requested writes
               754      35990         81      22102

結果分析

? ? 對于vmstat出來的統(tǒng)計結果,如何判定是否存在問題了?不同的服務器、操作系統(tǒng)擂送、應用場景等均不一樣八堡,也無法給出統(tǒng)一的判斷標準,需要大家根據實際情況進行綜合判斷驹马。以下是一些實際應用中的經驗,僅供參考:

  • 1、如果cache的值比較大检诗,則說明系統(tǒng)緩存了比較多的磁盤數(shù)據,有利于磁盤I/O性能的提升瓢剿,此時逢慌,bi會相對較小,因為很多讀寫磁盤的操作都由cache來承擔了间狂。
  • 2攻泼、si和so則代表讀寫SWAP的數(shù)量,這兩個值如果長期大于0鉴象,則表示系統(tǒng)需要經常讀寫交換分區(qū)忙菠,這樣會消耗CPU資源和磁盤I/O性能。如能確定物理內存存在瓶頸纺弊,則需要進行擴容或遷移了牛欢。
  • 3、如free的值很低淆游,基于接近于0傍睹,也不一定就是系統(tǒng)內存已經耗盡隔盛,還需要結合buffer和cache的使用量,如果buffer和cache占用了很多內存資源焰望,則代表沒有問題骚亿,說明系統(tǒng)把空閑的內存都用于緩存,反而是提升了I/O性能熊赖,當系統(tǒng)需要內存時来屠,buffer和cache可以隨時被回收回來。
  • 4震鹉、如果bi和bo值很大俱笛,則說明系統(tǒng)正在進行大量的磁盤讀寫操作。如果是用戶正在進行的操作传趾,則沒有問題迎膜,否則需要進行排查哪個設備或分區(qū)在進行大量讀寫操作。
  • 5浆兰、如果us的值經常大于50%磕仅,則說明用戶進程占用的CPU時間比較多,需要對占用較多的程序進行排查和優(yōu)化了簸呈。
  • 6榕订、如果sy值比較高,需要排查系統(tǒng)是否存在問題蜕便。
  • 7劫恒、如果wa值比較高,則說明CPU總是在等待I/O操作轿腺,說明磁盤已經成為瓶頸两嘴,需要排查磁盤是否存在問題或優(yōu)化程序的讀寫操作
  • 8、如果r值總是超過CPU核數(shù)族壳,則說明CPU可能成為瓶頸憔辫,可考核升級CPU等

mpstat

? ? mpstat全稱Multiprocessor statistics,也是一個監(jiān)控工具仿荆,主要對象是CPU螺垢。

基本用法

mpstat [選項] [采樣間隔] [采樣樣本數(shù)]

常用選項如下所示:

選項 解釋
-I 顯示中斷統(tǒng)計信息
-P 顯示指定CPU編號的統(tǒng)計信息,0為第一個CPU
-u 顯示CPU的使用情況
-A 等同于-u -I ALL -P ALL
與-I一起使用的參數(shù)如下所示
- SUM:顯示所有CPU中斷次數(shù)之和
- CPU:顯示每個CPU中斷次數(shù)
- ALL:將SUM和CPU的內容一起顯示

與-P一起使用的參數(shù)如下所示
- ON:僅統(tǒng)計在線的CPU使用情況
- ALL:統(tǒng)計所有CPU的使用情況

CPU常用指標

? ? 該指標一般是使用選項-u出來的統(tǒng)計結果赖歌,如下所示:

指標 解釋
CPU CPU編號
%usr 用戶進程所使用的CPU占比
%nice 對進程進行降級時的CPU占比
%sys 內核進行使用的CPU占比
%iowait 空閑態(tài)中等待I/O請求所使用的CPU占比
%irq 處理系統(tǒng)中斷所使用的CPU占比
%soft 軟件中斷所使用的CPU占比
%steal 虛擬管理程序所使用的CPU占比
%guest 運行虛擬處理器所使用的CPU占比
%gnice 運行降級虛擬程序所使用的CPU占比
%idle CPU空閑態(tài)的CPU占比

用法示例

1枉圃、查看所有CPU運行狀態(tài)


02mpstat示例1.jpg

2、查看指定CPU編號的運行狀態(tài)


03mpstat示例2.jpg

3庐冯、查看CPU中斷情況

    因為CPU的運算速度比外部硬件要快很多孽亲。以硬盤為例,如果是簡單的順序執(zhí)行展父,則CPU需要等待很長
時間返劲,不停詢問硬盤是否讀取完成玲昧,而這樣會浪費很多CPU時間。為此人們提出一種中斷機制篮绿,使得讀取硬
盤這樣的操作交給其他設備來完成孵延,而CPU則掛起當前進程,將控制權轉讓給其他來處理的進程亲配,當其他設
備處理完成后通知CPU尘应,系統(tǒng)將當前進程標識為活動進行,從而繼續(xù)執(zhí)行吼虎,處理硬盤的讀取操作犬钢。
04mpstat示例3.jpg

top

? ? top是Linux中一個常用的性能監(jiān)控工具并能周期性地進行更新,我們因此也可以快速了解服務器的運行狀態(tài)思灰。

基本用法

top [選項]

常用的選項如下所示:

選項 解釋
-b 以批處理模式進行操作
-c 顯示完整的命令信息
-d 更新時間間隔
-n number 指定循環(huán)顯示的次數(shù)
-u number/name 顯示指定用戶ID/用戶名的進程
-p pid 顯示指定PID的進程
-s 安全模式
-S 累積模式

交互模式

? ? 交換械是指在top顯示相關信息時玷犹,在不影響顯示信息的同時進行的其他操作等,詳細如下所示:

快捷鍵 說明
f 添加或刪除進程信息項
k 終止進程洒疚,需要輸入PID號
r 更改進程優(yōu)先級
S 切換到累積模式
s或d 更改刷新時間
m 切換顯示內存信息
t 切換顯示進程和CPU狀態(tài)信息
c 切換顯示命令名稱和完整命令行
P 根據CPU使用率大小進行排序
T 根據時間/累計時間進行排序
W 將當前設置保存到~/.toprc文件中
q 退出top進程
b 將當前進程進行高亮顯示
l 是否顯示系統(tǒng)負載信息和啟動時間
1(數(shù)字1) 顯示每個CPU核心單獨的性能數(shù)據

用法示例

1歹颓、第一個示例:


05top示例1.jpg

示例詳解

  • 系統(tǒng)級信息


    05top示例詳細講解-1.jpg
  • 進程指標信息

指標 說明 參考值
PID 進程ID
PRID 父進程ID
USER 進程所屬用戶,啟用進程的用戶名
PR Priority縮寫油湖,進程優(yōu)先級
NI Nice縮寫巍扛,用于調節(jié)優(yōu)先級,與PR有關肺魁,越小越早被執(zhí)行 -20~20 正數(shù)優(yōu)先級降低电湘,負數(shù)優(yōu)先級提升
VIRT 進程虛擬內存使用量
RES 進程使用且未被交換出的物理內存使用量
SHR 共享內存使用量
S 進程狀態(tài) R:運行 S:睡眠 D:不可中斷的睡眠狀態(tài) T:跟蹤隔节、停止 僵尸
%CPU CPU使用率
%MEM 內存使用率
TIME+ 進程的CPU使用時間累積和 單位為1/100秒
TIME 進程占用的CPU時間累積和 單位為秒
RUSER 進程的實際用戶名鹅经,即登錄到Shell所用用戶名
UID 進程所屬用戶的ID
GROUP 進程所屬的組名
TTY 啟動進程的終端名稱
P 進程最近一次所使用的CPU編號
SWAP 進程使用且被交換出來的虛擬內存使用量
CODE 進程對應的可執(zhí)行代碼所占用的物理內存量
DATA 進程對應的數(shù)據部分(數(shù)據段、棧等)所占用的物理內存量
nFLT 頁面錯誤次數(shù)
nDRT 最后一次寫入到目前為止被修改過的頁面數(shù)
WCHAN 如果進程處理睡眠狀態(tài)怎诫,則顯示睡眠狀態(tài)中系統(tǒng)調用名
Flags 進程標志
COMMAND 進程所對應的命令名

iostat

? ? iostat命令主要用來CPU的統(tǒng)計信息和每個設備瘾晃、硬盤的IO統(tǒng)計信息

基本用法

iostat [選項] [采樣間隔] [采樣樣本數(shù)]

常用的選項如下所示:

選項 解釋
-c 僅顯示CPU的統(tǒng)計信息,即單獨輸出CPU的平均統(tǒng)計信息
-d 僅顯示設備的統(tǒng)計信息
-h 將各設備的統(tǒng)計信息以易于查看的方式進行顯示
-k 以kb/s顯示統(tǒng)計信息
-m 以mb/s顯示統(tǒng)計信息
-t 增加顯示時間戳
-x 顯示額外信息
-y 忽略自系統(tǒng)啟動以來的第一行信息

用法示例

1幻妓、iostat示例


06iostat示例1.jpg

2蹦误、查看硬盤的IO信息


06iostat示例2.jpg

各指標詳細解釋如下所示:

指標 說明
tps 每秒進程的I/O讀寫請求總數(shù)
MB_read/s 每秒讀取的字節(jié)數(shù),單位為MB/s
MB_wrtn/s 每秒寫入的字節(jié)數(shù)肉津,單位為MB/s
MB_read 讀取的字節(jié)總數(shù) 强胰,單位為MB
MB_wrtn 寫入的字節(jié)總數(shù) ,單位為MB
看到第一組第一行的數(shù)字非常大妹沙,是否就可以斷定I/O存在問題了偶洋? 在iostat輸出的第一組第一行數(shù)據,
表示是自Linux系統(tǒng)啟動剛才本命令執(zhí)行這段期間的統(tǒng)計結果距糖,而后面的幾組數(shù)據才真正表示了在iostat
采樣周期的統(tǒng)計結果玄窝,而如果要排除第一組的數(shù)據可以使用選項 -y

3牵寺、顯示額外的統(tǒng)計信息


06iostat示例3.jpg

各指標詳細解釋如下所示:

指標 說明
rrqm/s 每秒對該設備的讀取請求總次數(shù)
wrqm/s 每秒對該設備的寫入請求總次數(shù)
r/s 每秒完成讀取的I/O次數(shù)
w/s 每秒完成寫入的I/O次數(shù)
rMB/s 每秒實際讀取的大小,單位為MB
wMB/s 每秒實際寫入的大小恩脂,單位為MB
avgrq-sz 平均每次I/O操作的數(shù)據大小
avgqu-sz 平均等待處理I/O操作的隊列長度
await 平均每次I/O請求等待時間(含等待時間和處理時間)帽氓,一般應低于5ms
r_await 每次讀取I/O請求等待時間
w_await 每次寫入I/O請求等待時間
svctm 平均每次I/O操作的服務時間
%util 周期內用于I/O操作的時間比率,即I/O隊列非空的時間比率,即(r/s+w/s )*(svctm/1000)

需要關注的參數(shù)如下所示:

  • %util:表示磁盤的忙碌情況俩块,較大則代表I/O請求太多黎休,硬盤可能存在瓶頸,一般不超過80%
  • await大于svctm:差值越小典阵,則說明隊列時間越短奋渔,反之差值越大,則隊列時間越長壮啊,系統(tǒng)可能存在問題
  • svctm接近await嫉鲸,則說明I/O幾乎沒有等待時間
  • await遠大于svctm,則說明I/O隊列太長歹啼,則響應時間會變長

4玄渗、顯示CPU統(tǒng)計信息


06iostat示例4.jpg

各指標詳細解釋如下所示:

指標 說明
%user 顯示CPU在用戶級(應用程序)執(zhí)行時的時間占比
%nice 顯示CPU在用戶級(應用程序)使用NICE權限執(zhí)行時的時間占比
%system 顯示CPU在系統(tǒng)級(內核)執(zhí)行時的時間占比
%iowait 顯示CPU在空閑狀態(tài)期間未完成的磁盤I/O時間占比
%steal 顯示hypervisor服務另一個虛擬處理器時,虛擬CPU等待實際CPU的時間占比
%idle 顯示CPU在空閑狀態(tài)期間系統(tǒng)未完成的磁盤I/O時間占比
  • 如果steal值比較高的話狸眼,需要擴容虛擬機藤树,這是因為服務器上的另一個虛擬機可能擁有更大更多的CPU時間片而占用了你的虛擬機的CPU時間
  • 如果iowait值比較高,則可能硬盤存在I/O瓶頸
  • 如果idle值比較高拓萌,則表示CPU長期處于空閑狀態(tài)
  • 如果idle值比較高但系統(tǒng)響應慢時岁钓,則有可能是CPU在等待內存分配,可考慮擴容內存容量
  • 如果idle值如果長期低于10%微王,則CPU處理能力是瓶頸
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末屡限,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子炕倘,更是在濱河造成了極大的恐慌钧大,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,635評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件罩旋,死亡現(xiàn)場離奇詭異啊央,居然都是意外死亡,警方通過查閱死者的電腦和手機涨醋,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,543評論 3 399
  • 文/潘曉璐 我一進店門瓜饥,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人浴骂,你說我怎么就攤上這事乓土。” “怎么了靠闭?”我有些...
    開封第一講書人閱讀 168,083評論 0 360
  • 文/不壞的土叔 我叫張陵帐我,是天一觀的道長坎炼。 經常有香客問我,道長拦键,這世上最難降的妖魔是什么谣光? 我笑而不...
    開封第一講書人閱讀 59,640評論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮芬为,結果婚禮上萄金,老公的妹妹穿的比我還像新娘。我一直安慰自己媚朦,他們只是感情好氧敢,可當我...
    茶點故事閱讀 68,640評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著询张,像睡著了一般孙乖。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上份氧,一...
    開封第一講書人閱讀 52,262評論 1 308
  • 那天唯袄,我揣著相機與錄音,去河邊找鬼蜗帜。 笑死恋拷,一個胖子當著我的面吹牛,可吹牛的內容都是我干的厅缺。 我是一名探鬼主播蔬顾,決...
    沈念sama閱讀 40,833評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼湘捎!你這毒婦竟也來了诀豁?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,736評論 0 276
  • 序言:老撾萬榮一對情侶失蹤消痛,失蹤者是張志新(化名)和其女友劉穎且叁,沒想到半個月后都哭,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體秩伞,經...
    沈念sama閱讀 46,280評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,369評論 3 340
  • 正文 我和宋清朗相戀三年欺矫,在試婚紗的時候發(fā)現(xiàn)自己被綠了纱新。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,503評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡穆趴,死狀恐怖脸爱,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情未妹,我是刑警寧澤簿废,帶...
    沈念sama閱讀 36,185評論 5 350
  • 正文 年R本政府宣布空入,位于F島的核電站,受9級特大地震影響族檬,放射性物質發(fā)生泄漏歪赢。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,870評論 3 333
  • 文/蒙蒙 一单料、第九天 我趴在偏房一處隱蔽的房頂上張望埋凯。 院中可真熱鬧,春花似錦扫尖、人聲如沸白对。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,340評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽甩恼。三九已至,卻和暖如春沉颂,著一層夾襖步出監(jiān)牢的瞬間媳拴,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,460評論 1 272
  • 我被黑心中介騙來泰國打工兆览, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留屈溉,地道東北人。 一個月前我還...
    沈念sama閱讀 48,909評論 3 376
  • 正文 我出身青樓抬探,卻偏偏與公主長得像子巾,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子小压,可洞房花燭夜當晚...
    茶點故事閱讀 45,512評論 2 359

推薦閱讀更多精彩內容