下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、linux system and performance monitoring(cpu篇)linux system and perfoae monitoring(cpu篇) date: 2009.07.21 author: darren hoch 譯: tonnyomat 2009.08.10 前言: 網(wǎng)上其實有無數(shù)關(guān)于這方面的文章,那為什么還會有此篇呢,有這么幾個緣由,是我翻譯的動力,第一,概念和內(nèi)容雖然老套,但都講得很透徹,而且還很全面.其次,理論結(jié)合實際,其中案例分析都不錯.第三,不花哨,采納的工具及都是最基本的,有助于實際操作.但本人才疏學淺,譯文大多數(shù)都是立足于自己對原文的理解,大家
2、也可以自己去oscan上找原文,假如有什么較大出入,還望留言回復,甚是感激! 1.0 性能監(jiān)控介紹 性能優(yōu)化就是找到系統(tǒng)處理中的瓶頸以及去除這些的過程,多數(shù)管理員信任看一些相關(guān)的 cook book 就可以實現(xiàn)性能優(yōu)化,通常通過對內(nèi)核的一些配置是可以容易的解決問題,但并不適合每個環(huán)境,性能優(yōu)化其實是對os 各子系統(tǒng)達到一種平衡的定義,這些子系統(tǒng)包括了: cpu memory io network 這些子系統(tǒng)之間關(guān)系是互相彼此依靠的,任何一個高負載都會導致其他子系統(tǒng)浮現(xiàn)問題.比如: 大量的頁調(diào)入哀求導致內(nèi)存隊列的擁塞 網(wǎng)卡的大吞吐量可能導致更多的 cpu開銷 大量的cpu開銷又會嘗試更多的內(nèi)存用
3、法哀求 大量來自內(nèi)存的磁盤寫哀求可能導致更多的 cpu 以及 io問題 所以要對一個系統(tǒng)舉行優(yōu)化,查找瓶頸來自哪個方面是關(guān)鍵,雖然看似是某一個子系統(tǒng)浮現(xiàn)問題,其實有可能是別的子系統(tǒng)導致的. 1.1 確定應用類型 基于需要理解該從什么地方來入手優(yōu)化瓶頸,首先重要的一點,就是理解并分析當前系統(tǒng)的特點,多數(shù)系統(tǒng)所跑的應用類型,主要為2種: io bound(譯注:io 范疇): 在這個范疇中的應用,普通都是高負荷的內(nèi)存用法以及存儲系統(tǒng),這事實上表示io 范疇的應用,就是一個大量數(shù)據(jù)處理的過程.io 范疇的應用不對cpu以及網(wǎng)絡(luò)發(fā)起更多哀求(除非類似nas這樣的網(wǎng)絡(luò)存儲硬件).io 范疇的應用通常用法
4、cpu 資源都是為了產(chǎn)生io 哀求以及進入到內(nèi)核調(diào)度的 狀態(tài).通常數(shù)據(jù)庫軟件(譯注:mysql,oracle等)被認為是io 范疇的應用類型. cpu bound(譯注:cpu 范疇): 在這個范疇中的應用,普通都是高負荷的cpu 占用. cpu 范疇的應用,就是一個批量處理cpu 哀求以及數(shù)學計算的過程.通常web server,mail server,以及其他類型服務被認為是cpu 范疇的應用類型. 1.2 確定基準線統(tǒng)計 系統(tǒng)利用率狀況,普通隨管理員閱歷以及系統(tǒng)本身用途來打算.唯一要清晰的就是,系統(tǒng)優(yōu)化希翼達成什么效果,以及哪些方面是需要優(yōu)化,還有參考值是什么?因此就建立一個基準線,這個
5、統(tǒng)計數(shù)據(jù)必需是系統(tǒng)可用性能狀態(tài)值,用來比較不行用性能狀態(tài)值. 在以下例子中,1個系統(tǒng)性能的基準線快照,用來比較當高負荷時的系統(tǒng)性能快照. vm 1 procs memory swap io system u r b swpd buff cache si so bi bo in cs us sy wa 1 0 138592 17932 126272 214244 0 0 1 18 109 19 2 1 1 96 0 0 138592 17932 126272 214244 0 0 0 0 105 46 0 1 0 99 0 0 138592 17932 126272 214244 0 0 0 0
6、 198 62 40 14 0 45 0 0 138592 17932 126272 214244 0 0 0 0 117 49 0 0 0 100 0 0 138592 17924 126272 214244 0 0 0 176 220 938 3 4 13 80 0 0 138592 17924 126272 214244 0 0 0 0 358 1522 8 17 0 75 1 0 138592 17924 126272 214244 0 0 0 0 368 1447 4 24 0 72 0 0 138592 17924 126272 214244 0 0 0 0 352 1277 9
7、12 0 79 vmstat 1 procs memory swap io system cpu r b swpd free buff cache si so bi bo in cs us sy wa id 2 0 145940 17752 118600 215592 0 1 1 18 109 19 2 1 1 96 2 0 145940 15856 118604 215652 0 0 0 468 789 108 86 14 0 0 3 0 146208 13884 118600 214640 0 360 0 360 498 71 91 9 0 0 2 0 146388 13764 11860
8、0 213788 0 340 0 340 672 41 87 13 0 0 2 0 147092 13788 118600 212452 0 740 0 1324 620 61 92 8 0 0 2 0 147360 13848 118600 211580 0 720 0 720 690 41 96 4 0 0 2 0 147912 13744 118192 210592 0 720 0 720 605 44 95 5 0 0 2 0 148452 13900 118192 209260 0 372 0 372 639 45 81 19 0 0 2 0 149132 13692 117824
9、208412 0 372 0 372 457 47 90 10 0 0 從上面第一個結(jié)果可看到,最后一列(id) 表示的是空閑時光,我們可以看到,在基準線統(tǒng)計時,cpu 的空閑時光在79% - 100%.在其次個結(jié)果可看到,系統(tǒng)處于100%的占用率以及沒有空閑時光.從這個比較中,我們就可以確定是否是cpu 用法率應當被優(yōu)化. 2.0 安裝監(jiān)控工具 多數(shù) *nix系統(tǒng)都有一堆標準的監(jiān)控指令.這些指令從一開頭就是*nix 的一部分.linux 則通過基本安裝包以及額外包提供了其他監(jiān)控工具,這些安裝包多數(shù)都存在各個linux 發(fā)布版本中.盡管還有其他更多的開源以及第三方監(jiān)控軟件,但本文檔只研究基于l
10、inux 發(fā)布版本的監(jiān)控工具. 本章將研究哪些工具怎樣來監(jiān)控系統(tǒng)性能. tool description base repository vmstat all purpose performance tool yes yes mpstat provides statistics per cpu no yes sar all purpose performance monitoring tool no yes iostat provides disk statistics no yes provides network statistics yes yes dstat monitoring st
11、atistics aggregator no in most disibutions iptraf traffic monitoring dashboard no yes netperf network bandwidth tool no in some distributions ethtool reports on ethernet interface configuration yes yes iperf network bandwidth tool no yes tcptrace packet analysis tool no yes 3.0 cpu 介紹 cpu 利用率主要依靠于是什
12、么資源在試圖存取.內(nèi)核調(diào)度器將負責調(diào)度2種資源種類:線程(單一或者多路)和中斷.調(diào)度器去定義不同資源的不同優(yōu)先權(quán).以下列表從優(yōu)先級高到低羅列: interrupts(譯注:中斷) - 設(shè)備通知內(nèi)核,他們完成一次數(shù)據(jù)處理的過程.例子,當一塊網(wǎng)卡設(shè)備遞送網(wǎng)絡(luò)數(shù)據(jù)包或者一塊硬件提供了一次io 哀求. kernel(system) processes(譯注:內(nèi)核處理過程) - 全部內(nèi)核處理過程就是控制優(yōu)先級別. user processes(譯注:用戶進程) - 這塊涉及 userland .全部軟件程序都運行在這個user space.這塊在內(nèi)核調(diào)度機制中處于低優(yōu)先級. 從上面,我們可以看出內(nèi)核是怎
13、樣管理不同資源的.還有幾個關(guān)鍵內(nèi)容需要介紹,以下部分就將介紹contt(譯注:上下文切換),run queues(譯注:運行隊列)以及utilization(譯注:利用率). 3.1 上下文切換 多數(shù)現(xiàn)代處理器都能夠運行一個進程(單一線程)或者線程.多路超線程處理器有能力運行多個線程.然而,linux 內(nèi)核還是把每個處理器核心的雙核心芯片作為自立的處理器.比如,以linux 內(nèi)核的系統(tǒng)在一個雙核心處理器上,是報告顯示為兩個自立的處理器. 一個標準的linux 內(nèi)核可以運行50 至 50,000 的處理線程.在惟獨一個cpu時,內(nèi)核將調(diào)度并均衡每個進程線程.每個線程都分配一個在處理器中被開銷的時
14、光額度.一個線程要么就是獲得時光額度或已搶先獲得一些具有較高優(yōu)先級(比如硬件中斷),其中較高優(yōu)先級的線程將從區(qū)域重新放置回處理器的隊列中.這種線程的轉(zhuǎn)換關(guān)系就是我們提到的上下文切換. 每次內(nèi)核的上下文切換,資源被用于關(guān)閉在cpu寄存器中的線程和放置在隊列中.系統(tǒng)中越多的上下文切換,在處理器的調(diào)度管理下,內(nèi)核將得到更多的工作. 3.2 運行隊列 每個cpu 都維護一個線程的運行隊列.理論上,調(diào)度器應當不斷的運行和執(zhí)行線程.進程線程不是在sleep 狀態(tài)中(譯注:堵塞中和等待io中)或就是在可運行狀態(tài)中.假如cpu 子系統(tǒng)處于高負荷下,那就意味著內(nèi)核調(diào)度將無法準時響應系統(tǒng)哀求.導致結(jié)果,可運行狀態(tài)
15、進程擁塞在運行隊列里.當運行隊列越來越巨大,進程線程將花費更多的時光獵取被執(zhí)行. 比較流行的術(shù)語就是 load ,它提供當前運行隊列的具體狀態(tài).系統(tǒng) load 就是指在cpu 隊列中有多少數(shù)目的線程,以及其中當前有多少進程線程數(shù)目被執(zhí)行的組合.假如一個雙核系統(tǒng)執(zhí)行了2個線程,還有4個在運行隊列中,則 load 應當為 6. top 這個程序里顯示的load averages 是指1,5,15 分鐘以內(nèi)的load 狀況. 3.3 cpu 利用率 cpu 利用率就是定義cpu 用法的百分比.評估系統(tǒng)最重要的一個度量方式就是cpu 的利用率.多數(shù)性能監(jiān)控工具關(guān)于cpu 利用率的分類有以下幾種: us
16、er time(譯注:用戶進程時光) - 關(guān)于在user space中被執(zhí)行進程在cpu 開銷時光百分比. system time(譯注:內(nèi)核線程以及中斷時光) - 關(guān)于在kernel space中線程和中斷在cpu 開銷時光百分比. wait io(譯注:io 哀求等待時光) - 全部進程線程被堵塞等待完成一次io 哀求所占cpu 開銷idle的時光百分比. idle(譯注:空閑) - 一個完整空閑狀態(tài)的進程在cpu 處理器中開銷的時光百分比. 4.0 cpu 性能監(jiān)控 理解運行隊列,利用率,上下文切換對怎樣cpu 性能最優(yōu)化之間的關(guān)系.早期提及到,性能是相對于基準線數(shù)據(jù)的.在一些系統(tǒng)中,通
17、常預期所達到的性能包括: run queues - 每個處理器應當運行隊列不超過1-3 個線程.例子,一個雙核處理器應當運行隊列不要超過6 個線程. cpu utiliation - 假如一個cpu 被充分用法,利用率分類之間均衡的比例應當是 65% - 70% user time 30% - 35% system time 0% - 5% idle time context switches - 上下文切換的數(shù)目挺直關(guān)系到cpu 的用法率,假如cpu 利用率保持在上述均衡狀態(tài)時,大量的上下文切換是正常的. 無數(shù)linux 上的工具可以得到這些狀態(tài)值,首先就是 vmstat 和 top 這2個
18、工具. 4.1 vmstat 工具的用法 vmstat 工具提供了一種低開銷的系統(tǒng)性能觀看方式.由于 vmstat 本身就是低開銷工具,在十分高負荷的服務器上,你需要查看并監(jiān)控系統(tǒng)的健康狀況,在控制窗口還是能夠用法vmstat 輸出結(jié)果.這個工具運行在2種模式下:average 和 sample 模式.sample 模式通過指定間隔時光測量狀態(tài)值.這個模式對于理解在持續(xù)負荷下的性能表現(xiàn),很有協(xié)助.下面就是 vmstat 運行1秒間隔的示例: vmstat 1 procs -memory- -swap- -io- -system- -cpu- r b swpd free buff cache s
19、i so bi bo in cs us sy id wa 0 0 104300 16800 95328 72200 0 0 5 26 7 14 4 1 95 0 0 0 104300 16800 95328 72200 0 0 0 24 1021 64 1 1 98 0 0 0 104300 16800 95328 72200 0 0 0 0 1009 59 1 1 98 0 table 1: the vmstat cpu statistics field description r the amount of threads in the run queue. these are threa
20、ds that are runnable, but the cpu is not available to exee them. 當前運行隊列中線程的數(shù)目.代表線程處于可運行狀態(tài),但cpu 還未能執(zhí)行. b this is the number of processes block and waiting on io requests to finish. 當前進程堵塞并等待io 哀求完成的數(shù)目 in this is the number of interrupts being proces. 當前中斷被處理的數(shù)目 cs this is the number of context switch
21、es currently happening on the system. 當前kernel system中,發(fā)生上下文切換的數(shù)目 us this is the percentage of user cpu utilization. cpu 利用率的百分比 sys this is the percentage of kernel and interrupts utilization. 內(nèi)核和中斷利用率的百分比 wa this is the percentage of idle processor e to the fact that all runnable threads are block
22、ed waiting on io. 全部可運行狀態(tài)線程被堵塞在等待io 哀求的百分比 id this is the percentage of time that the cpu is completely idle. cpu 空閑時光的百分比 4.2 案例學習:持續(xù)的cpu 利用率 在這個例子中,這個系統(tǒng)被充分利用 vmstat 1 procs memory swap io system cpu r b swpd free buff cache si so bi bo in cs us sy wa id 3 0 206564 15092 80336 176080 0 0 0 0 718 26
23、 81 19 0 0 2 0 206564 14772 80336 176120 0 0 0 0 758 23 96 4 0 0 1 0 206564 14208 80336 176136 0 0 0 0 820 20 96 4 0 0 1 0 206956 13884 79180 175964 0 412 0 2680 1008 80 93 7 0 0 2 0 207348 14448 78800 175576 0 412 0 412 763 70 84 16 0 0 2 0 207348 15756 78800 175424 0 0 0 0 874 25 89 11 0 0 1 0 207
24、348 16368 78800 175596 0 0 0 0 940 24 86 14 0 0 1 0 207348 16600 78800 175604 0 0 0 0 929 27 95 3 0 2 3 0 207348 16976 78548 175876 0 0 0 2508 969 35 93 7 0 0 4 0 207348 16216 78548 175704 0 0 0 0 874 36 93 6 0 1 4 0 207348 16424 78548 175776 0 0 0 0 850 26 77 23 0 0 2 0 207348 17496 78556 175840 0
25、0 0 0 736 23 83 17 0 0 0 0 207348 17680 78556 175868 0 0 0 0 861 21 91 8 0 1 按照觀看值,我們可以得到以下結(jié)論: 1,有大量的中斷(in) 和較少的上下文切換(cs).這意味著一個單一的進程在產(chǎn)生對硬件設(shè)備的哀求. 2,進一步顯示某單個應用,user time(us) 常常在85%或者更多.考慮到較少的上下文切換,這個應用應當還在處理器中被處理. 3,運行隊列還在可接受的性能范圍內(nèi),其中有2個地方,是超出了允許限制. 4.3 案例學習:超負荷調(diào)度 在這個例子中,內(nèi)核調(diào)度中的上下文切換處于飽和 vmstat 1 proc
26、s memory swap io system cpu r b swpd free buff cache si so bi bo in cs us sy wa id 2 1 207740 98476 81344 180972 0 0 2496 0 900 2883 4 12 57 27 0 1 207740 96448 83304 180984 0 0 1968 328 810 2559 8 9 83 0 0 1 207740 94404 85348 180984 0 0 2044 0 829 2879 9 6 78 7 0 1 207740 92576 87176 180984 0 0 18
27、28 0 689 2088 3 9 78 10 2 0 207740 91300 88452 180984 0 0 1276 0 565 2182 7 6 83 4 3 1 207740 90124 89628 180984 0 0 1176 0 551 2219 2 7 91 0 4 2 207740 89240 90512 180984 0 0 880 520 443 907 22 10 67 0 5 3 207740 88056 91680 180984 0 0 1168 0 628 1248 12 11 77 0 4 2 207740 86852 92880 180984 0 0 12
28、00 0 654 1505 6 7 87 0 6 1 207740 85736 93996 180984 0 0 1116 0 526 1512 5 10 85 0 0 1 207740 84844 94888 180984 0 0 892 0 438 1556 6 4 90 0 按照觀看值,我們可以得到以下結(jié)論: 1,上下文切換數(shù)目高于中斷數(shù)目,解釋kernel中相當數(shù)量的時光都開銷在上下文切換線程. 2,大量的上下文切換將導致cpu 利用率分類不均衡.很顯然事實上等待io 哀求的百分比(wa)十分高,以及user time百分比十分低(us). 3,由于cpu 都堵塞在io哀求上,所以運行
29、隊列里也有相當數(shù)目的可運行狀態(tài)線程在等待執(zhí)行. 4.4 mpstat 工具的用法 假如你的系統(tǒng)運行在多處理器芯片上,你可以用法 mpstat 指令來監(jiān)控每個自立的芯片.linux 內(nèi)核視雙核處理器為2 cpu s,因此一個雙核處理器的雙內(nèi)核就報告有4 cpu s 可用. mpstat 指令給出的cpu 利用率統(tǒng)計值大致和 vmstat 全都,但是 mpstat 可以給出基于單個處理器的統(tǒng)計值. mpstat p all 1 linux 2.4.21-20.elsmp (localhost.localdomain) 05/23/2006 05:17:31 pm cpu %user %nice %
30、system %idle intr/s 05:17:32 pm all 0.00 0.00 3.19 96.53 13.27 05:17:32 pm 0 0.00 0.00 0.00 100.00 0.00 05:17:32 pm 1 1.12 0.00 12.73 86.15 13.27 05:17:32 pm 2 0.00 0.00 0.00 100.00 0.00 05:17:32 pm 3 0.00 0.00 0.00 100.00 0.00 4.5 案例學習: 未充分用法的處理量 在這個例子中,為4 cpu核心可用.其中2個cpu 主要處理進程運行(cpu 0 和1).第3個核心處理
31、全部內(nèi)核和其他系統(tǒng)功能(cpu 3).第4個核心處于idle(cpu 2). 用法 top 指令可以看到有3個進程差不多徹低占用了囫圇cpu 核心. top -d 1 top - 23:08:53 up 8:34, 3 users, load average: 0.91, 0.37, 0.13 tasks: 190 total, 4 running, 186 slee, 0 stopped, 0 zombie cpu(s): 75.2% us, 0.2% sy, 0.0% ni, 24.5% id, 0.0% wa, 0.0% hi, 0.0% si mem: 2074736k total,
32、448684k used, 1626052k free, 73756k buffers swap: 4192956k total, 0k used, 4192956k free, 259044k cached pid user pr ni virt res shr s %cpu %mem time+ command 15957 nobody 25 0 2776 280 224 r 100 20.5 0:25.48 15959 mysql 25 0 2256 280 224 r 100 38.2 0:17.78 mysqld 15960 apache 25 0 2416 280 224 r 10
33、0 15.7 0:11.20 15901 root 16 0 2780 1092 800 r 1 0.1 0:01.59 top 1 root 16 0 1780 660 572 s 0 0.0 0:00.64 init mpstat p all 1 linux 2.4.21-20.elsmp (localhost.localdomain) 05/23/2006 05:17:31 pm cpu %user %nice %system %idle intr/s 05:17:32 pm all 81.52 0.00 18.48 21.17 130.58 05:17:32 pm 0 83.67 0.
34、00 17.35 0.00 115.31 05:17:32 pm 1 80.61 0.00 19.39 0.00 13.27 05:17:32 pm 2 0.00 0.00 16.33 84.66 2.01 05:17:32 pm 3 79.59 0.00 21.43 0.00 0.00 05:17:32 pm cpu %user %nice %system %idle intr/s 05:17:33 pm all 85.86 0.00 14.14 25.00 116.49 05:17:33 pm 0 88.66 0.00 12.37 0.00 116.49 05:17:33 pm 1 80.41 0.00 19.59 0.00 0.00 05:17:33 pm 2 0.00 0.00 0.00 100.00 0.00 05:17:33 pm 3 83.51 0.00 16.49 0.00 0.
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度個人投資分紅收據(jù)模板制作服務協(xié)議
- 二零二五年度電力設(shè)施安全監(jiān)控系統(tǒng)維護與隱患排查合同3篇
- 二手房買賣簡易協(xié)議2024版指南版
- 2025年中國金屬導電膜市場調(diào)查研究報告
- 2025年中國路樁市場調(diào)查研究報告
- 2025年中國工藝夾板平面門市場調(diào)查研究報告
- 2025年中國單相異步減速電機市場調(diào)查研究報告
- 二零二五年度存量房屋拍賣經(jīng)紀服務協(xié)議4篇
- 2025年度電商新媒體運營培訓合作協(xié)議范本4篇
- 農(nóng)機運行狀態(tài)監(jiān)測-深度研究
- (正式版)SJT 11449-2024 集中空調(diào)電子計費信息系統(tǒng)工程技術(shù)規(guī)范
- 廣州綠色金融發(fā)展現(xiàn)狀及對策的研究
- 《近現(xiàn)代史》義和團運動
- 人教版四年級上冊加減乘除四則混合運算300題及答案
- 合成生物學技術(shù)在生物制藥中的應用
- 消化系統(tǒng)疾病的負性情緒與心理護理
- 高考語文文學類閱讀分類訓練:戲劇類(含答案)
- 協(xié)會監(jiān)事會工作報告大全(12篇)
- 灰壩施工組織設(shè)計
- WS-T 813-2023 手術(shù)部位標識標準
- 同意更改小孩名字協(xié)議書
評論
0/150
提交評論