Linux性能監(jiān)控與分析之--- CPU

CPU性能指標(biāo)

  1. 用戶進(jìn)程使用CPU的比率
  2. 系統(tǒng)進(jìn)程使用CPU的比率
  3. WIO, 等待I/O 而是CPU處于空閑狀態(tài)的比率。
  4. CPU的空閑率
  5. CPU用于上下文交換的比率
    6请唱,nice
    7,real-time
    8递雀,運行進(jìn)程隊列的長度
    9泵喘,平均負(fù)載

Linux下常用監(jiān)控CPU性能的工具有

  1. iostat
    只能查看所有CPU的平均信息
  2. vmstat
    能查看所有CPU的平均信息,
    能查看CPU隊列信息
  3. mpstat
    能查看單個和所有的CPU信息弊知。
  4. sar
    與mpstat類似
  5. top
  6. nmon

iostat

iostat  
Linux 2.6.18-92.el5          08/30/2012  
  
avg-cpu:  %user   %nice %system %iowait  %steal   %idle  
           1.16    0.01    0.62    0.18    0.00   98.03  

vmstat

vmstat -n 5  
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------  
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st  
 0  0     96 1261196 981892 3638872    0    0     0    16    1    1  1  1 98  0  0  

  • -n 5 參數(shù)的意義是每隔 5 秒刷新一次
  • procs
    • r -- 下面的數(shù)字代表運行的序列。如果這個值連續(xù)大于系統(tǒng)的CPU個數(shù)表示系統(tǒng)運行較慢粱快, 有多數(shù)進(jìn)程等待CPU秩彤。 如果r的個數(shù)大于CPU的4倍的話, 則系統(tǒng)面臨CPU短缺或是CPU的速率過低事哭,造成系統(tǒng)運行過慢漫雷。
  • System
    • in -- 每秒產(chǎn)生的中斷次數(shù)
    • cs -- 每秒產(chǎn)生的上下文切換次數(shù)。
      這兩個值越大鳍咱,系統(tǒng)進(jìn)程消耗的CPU的時間越大降盹。
  • CPU
    • us -- 用戶進(jìn)程消耗CPU的時間百分比。長期居高不下谤辜, 就需要優(yōu)化程序了蓄坏。
    • sy -- 系統(tǒng)進(jìn)程消耗CPU的時間百分比仅胞。 sy 值高, 并不是良性的表現(xiàn)剑辫。
    • wa -- IO等待消耗的CPU時間百分比干旧, 值高時,說明IO等待比較嚴(yán)重妹蔽, 可能由于磁盤大量隨機訪問造成椎眯, 也有可能磁盤出現(xiàn)瓶頸。
      id -- CPU 處于空閑時間百分比胳岂。如果持續(xù)為0且出現(xiàn)sy 是us 兩倍狀況编整,則系統(tǒng)面臨CPU資源短缺。當(dāng)發(fā)生此問題的時候請先調(diào)整應(yīng)用程序?qū)PU的占用情況.使得應(yīng)用程序能夠更有效的使用CPU.同時可以考慮增加更多的CPU.

mpstat - (Multiprocessor Statistics)
實施監(jiān)控乳丰, 信息存放在 /proc/stat文件中

mpstat -P ALL 2 10  
Linux 2.6.18-92.el5 ()         08/30/2012  
  
08:16:34 PM  CPU   %user   %nice    %sys %iowait    %irq   %soft  %steal   %idle    intr/s  
08:16:36 PM  all    0.78    0.00    0.26    0.26    0.00    0.26    0.00   98.44   1058.85  
08:16:36 PM    0    0.52    0.00    0.52    0.00    0.00    0.52    0.00   98.44   1058.85  
08:16:36 PM    1    0.52    0.00    0.00    0.00    0.00    0.00    0.00   99.48      0.00

以上意思是: 每隔2秒采樣所有CPU的使用狀況掌测, 總過采樣10次。語法如下:
mpstat [-P {|ALL}] [internal [count]]

  • -P 監(jiān)控哪個CPU, 一般使用ALL就可以了
  • Internal 間隔的時間
  • count 采樣的次數(shù)
    輸出參數(shù)意義
  • %user -- 用戶態(tài)CPU時間比
  • %nice -- 負(fù)進(jìn)程的CPU時間
  • %system - 核心態(tài)時間
  • iowait -- IO 等待時間
  • irq --
  • soft
  • idle
  • intr/s 每秒CPU接收中斷的次數(shù)

sar

$ sar -u 2 10  
Linux 2.6.18-92.el5 ()         08/30/2012  
  
08:28:36 PM       CPU     %user     %nice   %system   %iowait    %steal     %idle  
08:28:38 PM       all      0.26      0.00      0.00      0.78      0.00     98.97  
08:28:40 PM       all      0.52      0.00      0.52      0.00      0.00     98.9

** sar [options] [-A] [-o file] t [n]**

  • 在命令行中产园,n 和t 兩個參數(shù)組合起來定義采樣間隔和次數(shù)汞斧,t為采樣間隔,是必須有的參數(shù)什燕,n為采樣次數(shù)粘勒,是可選的,默認(rèn)值是1屎即,-o file表示將命令結(jié)果以二進(jìn)制格式存放在文件中庙睡,file 在此處不是關(guān)鍵字,是文件名options 為命令行選項技俐,sar命令的選項很多乘陪,下面只列出常用選項:

-A:所有報告的總和。
-u:CPU利用率
-v:進(jìn)程雕擂、I節(jié)點啡邑、文件和鎖表狀態(tài)。
-d:硬盤使用報告捂刺。
-r:內(nèi)存和交換空間的使用統(tǒng)計谣拣。
-g:串口I/O的情況募寨。
-b:緩沖區(qū)使用情況族展。
-a:文件讀寫情況。
-c:系統(tǒng)調(diào)用情況拔鹰。
-q:報告隊列長度和系統(tǒng)平均負(fù)載
-R:進(jìn)程的活動情況仪缸。
-y:終端設(shè)備活動情況。
-w:系統(tǒng)交換活動列肢。
-x { pid | SELF | ALL }:報告指定進(jìn)程ID的統(tǒng)計信息恰画,SELF關(guān)鍵字是sar進(jìn)程本身的統(tǒng)計宾茂,ALL關(guān)鍵字是所有系統(tǒng)進(jìn)程的統(tǒng)計

%user:CPU處在用戶模式下的時間百分比。
%nice:CPU處在帶NICE值的用戶模式下的時間百分比拴还。
%system:CPU處在系統(tǒng)模式下的時間百分比跨晴。
%iowait:CPU等待輸入輸出完成時間的百分比。
%steal:管理程序維護(hù)另一個虛擬處理器時片林,虛擬CPU的無意識等待時間百分比端盆。
%idle:CPU空閑時間百分比。

  • 在所有的顯示中费封,我們應(yīng)主要注意%iowait和%idle焕妙,%iowait的值過高,表示硬盤存在I/O瓶頸弓摘,%idle值高焚鹊,表示CPU較空閑,如果%idle值高但系統(tǒng)響應(yīng)慢時韧献,有可能是CPU等待分配內(nèi)存末患,此時應(yīng)加大內(nèi)存容量。%idle值如果持續(xù)低于10锤窑,那么系統(tǒng)的CPU處理能力相對較低阻塑,表明系統(tǒng)中最需要解決的資源是CPU。

用sar進(jìn)行運行進(jìn)程隊列長度分析:

#sar -q 2 10
Linux 2.6.18-53.el5PAE (localhost.localdomain)  03/28/2009
07:58:14 PM   runq-sz  plist-sz   ldavg-1   ldavg-5  ldavg-15
07:58:16 PM         0         493          0.64        0.56        0.49
07:58:18 PM         1         491          0.64        0.56        0.49
07:58:20 PM         1         488          0.59        0.55        0.49
07:58:22 PM         0         487          0.59        0.55        0.49
07:58:24 PM         0         485          0.59        0.55        0.49
07:58:26 PM         1         483          0.78        0.59        0.50
07:58:28 PM         0         481          0.78        0.59        0.50
07:58:30 PM         1         480          0.72        0.58        0.50
07:58:32 PM         0         477          0.72        0.58        0.50
07:58:34 PM         0         474          0.72        0.58        0.50
Average:               0         484          0.68        0.57        0.49
 
runq-sz 準(zhǔn)備運行的進(jìn)程運行隊列果复。
plist-sz  進(jìn)程隊列里的進(jìn)程和線程的數(shù)量
ldavg-1  前一分鐘的系統(tǒng)平均負(fù)載(load average)
ldavg-5  前五分鐘的系統(tǒng)平均負(fù)載(load average)
ldavg-15  前15分鐘的系統(tǒng)平均負(fù)載(load average)
  • 順便說一下load avarage的含義load average可以理解為每秒鐘CPU等待運行的進(jìn)程個數(shù).在Linux系統(tǒng)中陈莽,sar -q、uptime虽抄、w走搁、top等命令都會有系統(tǒng)平均負(fù)載load average的輸出,那么什么是系統(tǒng)平均負(fù)載呢迈窟?  系統(tǒng)平均負(fù)載被定義為在特定時間間隔內(nèi)運行隊列中的平均任務(wù)數(shù)私植。如果一個進(jìn)程滿足以下條件則其就會位于運行隊列中:
    • 它沒有在等待I/O操作的結(jié)果
    • 它沒有主動進(jìn)入等待狀態(tài)(也就是沒有調(diào)用'wait')
    • 沒有被停止(例如:等待終止)

uptime

  • 20:55:40 up 24 days, 3:06, 1 user, load average: 8.13, 5.90, 4.94
  • 命令輸出的最后內(nèi)容表示在過去的1、5车酣、15分鐘內(nèi)運行隊列中的平均進(jìn)程數(shù)量曲稼。
  • 一般來說只要每個CPU的當(dāng)前活動進(jìn)程數(shù)不大于3那么系統(tǒng)的性能就是良好的,如果每個CPU的任務(wù)數(shù)大于5湖员,那么就表示這臺機器的性能有嚴(yán)重問題贫悄。對 于上面的例子來說,假設(shè)系統(tǒng)有兩個CPU娘摔,那么其每個CPU的當(dāng)前任務(wù)數(shù)為:8.13/2=4.065窄坦。這表示該系統(tǒng)的性能是可以接受的。

來自:http://blog.csdn.net/oscar999/article/details/7926495

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市鸭津,隨后出現(xiàn)的幾起案子彤侍,更是在濱河造成了極大的恐慌,老刑警劉巖逆趋,帶你破解...
    沈念sama閱讀 219,188評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件盏阶,死亡現(xiàn)場離奇詭異,居然都是意外死亡闻书,警方通過查閱死者的電腦和手機般哼,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,464評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來惠窄,“玉大人蒸眠,你說我怎么就攤上這事「巳冢” “怎么了楞卡?”我有些...
    開封第一講書人閱讀 165,562評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長脾歇。 經(jīng)常有香客問我蒋腮,道長,這世上最難降的妖魔是什么藕各? 我笑而不...
    開封第一講書人閱讀 58,893評論 1 295
  • 正文 為了忘掉前任池摧,我火速辦了婚禮,結(jié)果婚禮上激况,老公的妹妹穿的比我還像新娘作彤。我一直安慰自己,他們只是感情好乌逐,可當(dāng)我...
    茶點故事閱讀 67,917評論 6 392
  • 文/花漫 我一把揭開白布竭讳。 她就那樣靜靜地躺著,像睡著了一般浙踢。 火紅的嫁衣襯著肌膚如雪绢慢。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,708評論 1 305
  • 那天洛波,我揣著相機與錄音胰舆,去河邊找鬼。 笑死蹬挤,一個胖子當(dāng)著我的面吹牛缚窿,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播闻伶,決...
    沈念sama閱讀 40,430評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼滨攻,長吁一口氣:“原來是場噩夢啊……” “哼够话!你這毒婦竟也來了蓝翰?” 一聲冷哼從身側(cè)響起光绕,我...
    開封第一講書人閱讀 39,342評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎畜份,沒想到半個月后诞帐,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,801評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡爆雹,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,976評論 3 337
  • 正文 我和宋清朗相戀三年停蕉,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片钙态。...
    茶點故事閱讀 40,115評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡慧起,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出册倒,到底是詐尸還是另有隱情蚓挤,我是刑警寧澤,帶...
    沈念sama閱讀 35,804評論 5 346
  • 正文 年R本政府宣布驻子,位于F島的核電站灿意,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏崇呵。R本人自食惡果不足惜缤剧,卻給世界環(huán)境...
    茶點故事閱讀 41,458評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望域慷。 院中可真熱鬧荒辕,春花似錦、人聲如沸犹褒。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,008評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽化漆。三九已至估脆,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間座云,已是汗流浹背疙赠。 一陣腳步聲響...
    開封第一講書人閱讀 33,135評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留朦拖,地道東北人圃阳。 一個月前我還...
    沈念sama閱讀 48,365評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像璧帝,于是被迫代替她去往敵國和親捍岳。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,055評論 2 355

推薦閱讀更多精彩內(nèi)容