版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、linux系統(tǒng)性能優(yōu)化及瓶頸分析一,用vmstat分析系統(tǒng)I/O情況rootlocalhost # vmstat -n 3 (每個(gè)3秒刷新一次)procs-memory-swap- -io- -system- -cpu-r b swpd free buff cache si so bi bo in
2、; cs us sy id wa1 0 144 186164 105252 2386848 0 0 18 166 83 2 48 21 31 02 0 144 189620 10525
3、2 2386848 0 0 0 177 1039 1210 34 10 56 00 0 144 214324 105252 2386848 0 0 0 10 1071 670 32 5 63
4、60; 00 0 144 202212 105252 2386848 0 0 0 189 1035 558 20 3 77 02 0 144 158772 105252 2386848 0 0 0 203 1065 2832
5、 70 14 15 0IO-bi:從塊設(shè)備讀入的數(shù)據(jù)總量(讀磁盤)(KB/S)-bo:寫入到塊設(shè)備的數(shù)據(jù)總量(寫磁盤)(KB/S)隨機(jī)磁盤讀寫的時(shí)候,這2個(gè)值越大(如超出1M),能看到CPU在IO等待的值也會(huì)越大二,用iostat分析I/O子系統(tǒng)情況 如果你的系統(tǒng)沒有iostat,sar,mpstat等命令,安裝sysstat- 7.0.2-1.el5.i386.rpm包,iostat工具將對(duì)系統(tǒng)的磁盤操作活動(dòng)進(jìn)行監(jiān)視。它的特點(diǎn)是匯報(bào)磁盤活動(dòng)統(tǒng)計(jì)情況,同時(shí)也會(huì)匯報(bào)出CPU 使用情況。同vmst
6、at一樣,iostat也有一個(gè)弱點(diǎn),就是它不能對(duì)某個(gè)進(jìn)程進(jìn)行深入分析,僅對(duì)系統(tǒng)的整體情況進(jìn)行分析。iostat的語法如下:程序代碼iostat -c | -d -k -t -V -x device interval count -c為匯報(bào)CPU的使用情況;-d為匯報(bào)磁盤的使用情況;-k表示每秒按kilobytes字節(jié)顯示數(shù)據(jù);-t為打印匯報(bào)的時(shí)間;-v表示打印出版本信息和用法;-x device指定要統(tǒng)計(jì)的設(shè)備名稱,默認(rèn)為所有的設(shè)備;interval指每次統(tǒng)計(jì)間隔的時(shí)間;count指按照這個(gè)時(shí)間間隔統(tǒng)計(jì)的次數(shù)。iostat在內(nèi)核2.4和內(nèi)核2.6中數(shù)據(jù)來源不太一樣,對(duì)于kernel 2.4,
7、iostat 的數(shù)據(jù)的主要來源是 /proc/partitions;在2.6中,數(shù)據(jù)來源主要是/proc/diskstats和/sys/block/sd*/stat這兩個(gè)文件#cat /proc/diskstats | grep sda 8 0 sda 17945521 1547188 466667211 174042714 15853874 42776252 469241932 2406054445 0 13765
8、5809 2580960422 8 1 sda1 936 1876 6 12 8 2 sda2 19489178 466659986 58655070
9、0;469240224 8 3 sda3 1270 1441 33 264 8 4 sda4 4 8
10、 0 0 8 5 sda5 648 1442 0 0 8
11、; 6 sda6 648 1442 0 0第1列 : 磁盤主設(shè)備號(hào)(major)第2列 : 磁盤次設(shè)備號(hào)(minor)第3列 : 磁盤的設(shè)備名(name)第4列 : 讀請(qǐng)求總數(shù)(rio)第5列 : 合并的讀請(qǐng)求總數(shù)(rmerge)第6列 : 讀扇區(qū)總數(shù)(rsect)第7列 : 讀數(shù)據(jù)花費(fèi)的時(shí)間,單
12、位是ms.(從_make_request到 end_that_request_last)(ruse)第8列 : 寫請(qǐng)求總數(shù)(wio)第9列 : 合并的寫請(qǐng)求總數(shù)(wmerge)第10列 : 寫扇區(qū)總數(shù)(wsect)第11列 : 寫數(shù)據(jù)花費(fèi)的時(shí)間,單位是ms. (從_make_request到 end_that_request_last)(wuse)第12列 : 現(xiàn)在正在進(jìn)行的I/O數(shù)(running),等于I/O隊(duì)列中請(qǐng)求數(shù)第13列 : 系統(tǒng)真正花費(fèi)在I/O上的時(shí)間,除去重復(fù)等待時(shí)間(aveq)第14列 : 系統(tǒng)在I/O上花費(fèi)的時(shí)間(use)。#iostat -x
13、1Linux 2.6.18-53.el5PAE (localhost.localdomain) 03/27/2009avg-cpu: %user %nice %system %iowait %steal %idle 30.72 0.00 5.00 5.72 0.00 58.56Device: rrqm/s wrqm/s
14、 r/s w/s rsec/s wsec/s avgrq-sz avgqu-sz await svctm %utilsda 0.79 21.81 9.15 8.08 237.99 239.29 27.69
15、 1.32 76.31 4.07 7.02sdb 0.69 19.13 3.26 2.99 153.08 176.92 52.85 0.43 68.80
16、; 5.96 3.72sdc 3.47 89.30 10.95 7.30 213.30 772.94 54.04 1.32 72.43 4.18 7.63每項(xiàng)數(shù)據(jù)的含義如下,rrqm/s: &
17、#160; 每秒進(jìn)行 merge 的讀操作數(shù)目。即 rmerge/swrqm/s: 每秒進(jìn)行 merge 的寫操作數(shù)目。即 wmerge/sr/s: 每秒完成的讀 I/O 設(shè)備次數(shù)。即 rio/sw/s: 每秒完成的寫 I/O 設(shè)備次數(shù)。即 wio/srsec/s: 每秒讀扇區(qū)數(shù)。即 rsect/swsec/s: 每秒寫扇區(qū)數(shù)。即 wsect/srkB/s: 每秒讀K字節(jié)數(shù)。是 rsec
18、t/s 的一半,因?yàn)槊可葏^(qū)大小為512字節(jié)。wkB/s: 每秒寫K字節(jié)數(shù)。是 wsect/s 的一半。avgrq-sz: 平均每次設(shè)備I/O操作的數(shù)據(jù)大小 (扇區(qū))。即 (rsect+wsect)/(rio+wio)avgqu-sz: 平均I/O隊(duì)列長(zhǎng)度。即 aveq/1000 (因?yàn)閍veq的單位為毫秒)。await: 平均每次設(shè)備I/O操作的等待時(shí)間 (毫秒)。即 (ruse+wuse)/(rio+wio)svctm: 平均每次設(shè)備I/O操作的服務(wù)時(shí)間 (毫秒)。即 use/(r
19、io+wio)%util: 一秒中有百分之多少的時(shí)間用于 I/O 操作,或者說一秒中有多少時(shí)間I/O隊(duì)列是非空的,即use/1000 (因?yàn)閡se的單位為毫秒),如果 %util 接近 100%,說明產(chǎn)生的I/O請(qǐng)求太多,I/O系統(tǒng)已經(jīng)滿負(fù)荷,該磁盤可能存在瓶頸。svctm 一般要小于 await (因?yàn)橥瑫r(shí)等待的請(qǐng)求的等待時(shí)間被重復(fù)計(jì)算了),svctm 的大小一般和磁盤性能有關(guān),CPU/內(nèi)存的負(fù)荷也會(huì)對(duì)其有影響,請(qǐng)求過多也會(huì)間接導(dǎo)致 svctm 的增加。await 的大小一般取決于服務(wù)時(shí)間(svctm) 以及 I/O 隊(duì)列的長(zhǎng)度和 I/O 請(qǐng)求的發(fā)出模式。如果 s
20、vctm 比較接近 await,說明 I/O 幾乎沒有等待時(shí)間;如果 await 遠(yuǎn)大于 svctm,說明 I/O 隊(duì)列太長(zhǎng),應(yīng)用得到的響應(yīng)時(shí)間變慢,如果響應(yīng)時(shí)間超過了用戶可以容許的范圍,這時(shí)可以考慮更換更快的磁盤,調(diào)整內(nèi)核 elevator 算法,優(yōu)化應(yīng)用,或者升級(jí) CPU。 隊(duì)列長(zhǎng)度(avgqu-sz)也可作為衡量系統(tǒng) I/O 負(fù)荷的指標(biāo),但由于 avgqu-sz 是按照單位時(shí)間的平均值,所以不能反映瞬間的 I/O 洪水。io/s = r/s +w/sawait=(ruse+wuse)/io(每個(gè)請(qǐng)求的等待時(shí)間)await*io/s=每秒內(nèi)的I/O請(qǐng)求總共需要等待的
21、msavgqu-sz=await*(r/s+w/s)/1000(隊(duì)列長(zhǎng)度)以下數(shù)據(jù)其實(shí)與/proc/diskstats中除設(shè)備號(hào)與設(shè)備名外的其它數(shù)據(jù)是一一對(duì)應(yīng)關(guān)系,只是統(tǒng)計(jì)的方法略有差別而已。#cat /sys/block/sda/stat17949157 1547772 466744707 174070520 15855905 42781288 469298468 2406092114 2 137680700 2581025934三,sar -b 監(jiān)控I/O#sar -b 1 10Linux 2.6.18-53.el5PAE
22、(localhost.localdomain) 03/29/200912:19:40 AM tps rtps wtps bread/s bwrtn/s12:19:42 AM 21.48 9.40 12.08 187.92 429.5312:19:43
23、 AM 14.00 14.00 0.00 840.00 0.0012:19:44 AM 10.29 8.82 1.47 235.29 217.6512:19:45 AM 12.87 10.89
24、 1.98 752.48 142.5712:19:46 AM 19.82 12.61 7.21 425.23 381.9812:19:47 AM 19.00 19.00 0.00 512.00 0.0012:19:49 AM &
25、#160; 9.29 9.29 0.00 262.86 0.0012:19:50 AM 16.00 5.00 11.00 144.00 536.0012:19:51 AM 17.65 8.82
26、160; 8.82 211.76 235.2912:19:52 AM 41.41 29.29 12.12 614.14 363.64Average: 17.75 12.30 5.45 397.19 231.99
27、-tps:每秒鐘對(duì)磁盤發(fā)送transfer的總數(shù),一個(gè)transfer就是一個(gè)I/O,多個(gè)邏輯請(qǐng)求組合成一個(gè)對(duì)磁盤的I/O請(qǐng)求,一個(gè)transfer的大小不確定。-rtps:每秒鐘的物理讀的總數(shù)-wtps:每秒鐘的物理寫的總數(shù)-bread/s:每秒鐘從磁盤讀取的數(shù)據(jù)總數(shù)-bwrtn/s:每秒鐘寫入磁盤的數(shù)據(jù)的總數(shù)四,sar -d 1 10Linux 2.6.18-53.el5PAE (localhost.localdomain) 03/29/200912:38:56 AM DEV tps
28、;rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util12:38:57 AM dev8-0 15.00 232.00 0.00 15.47 0.01 0
29、.87 0.87 1.3012:38:57 AM dev8-16 6.00 80.00 320.00 66.67 0.05 8.67 8.67 5.2012:38:57 AM
30、160; dev8-32 10.00 224.00 0.00 22.40 0.09 9.20 9.20 9.20 tps:每秒鐘對(duì)磁盤發(fā)送transfer的總數(shù),一個(gè)transf
31、er就是一個(gè)I/O,多個(gè)邏輯請(qǐng)求組合成一個(gè)對(duì)磁盤的I/O請(qǐng)求,一個(gè)transfer的大小不確定 rd_sec/s 每秒鐘讀取的扇區(qū)數(shù),每個(gè)扇區(qū)512 bytes. wr_sec/s
32、0; 每秒鐘寫入的扇區(qū)數(shù),每個(gè)扇區(qū)512 bytes. avgrq-sz 對(duì)磁盤請(qǐng)求的扇區(qū)的平均大小。 avgqu-sz
33、 對(duì)磁盤請(qǐng)求的平均隊(duì)列長(zhǎng)度. await 請(qǐng)求響應(yīng)的平均時(shí)間(毫秒).包括在請(qǐng)求隊(duì)列中的時(shí)間和響應(yīng)消耗時(shí)間 svctm
34、160; 對(duì)IO請(qǐng)求的服務(wù)時(shí)間. %util I/O請(qǐng)求占用的CPU時(shí)間百分比。Linux命令-分析內(nèi)存的瓶頸為了提高磁盤存取效率, Linux做了一些精心的設(shè)計(jì), 除了對(duì)dentry進(jìn)行緩存(用于VFS,加速文件路徑名到inode的轉(zhuǎn)換), 還采取了兩種主要Cache方
35、式:Buffer Cache和Page Cache.前者針對(duì)磁盤塊的讀寫,后者針對(duì)文件inode的讀寫.這些Cache有效縮短了I/O系統(tǒng)調(diào)用(比如 read,write,getdents)的時(shí)間. 內(nèi)存活動(dòng)基本上可以用3個(gè)數(shù)字來量化:活動(dòng)虛擬內(nèi)存總量,交換(swapping)率和調(diào)頁(paging)率.其中第一個(gè)數(shù)字表明內(nèi)存的總需求 量,后兩個(gè)數(shù)字表示那些內(nèi)存中有多少比例正處在使用之中.目標(biāo)是減少內(nèi)存活動(dòng)或增加內(nèi)存量,直到調(diào)頁率保持在一個(gè)可以接受的水平上為止. 活動(dòng)虛擬內(nèi)存的總量(VM
36、)=實(shí)際內(nèi)存大小(size of real memory)(物理內(nèi)存)+使用的交換空間大小(amount of swap space used) 當(dāng)程序運(yùn)行需要的內(nèi)存大于物理內(nèi)存時(shí),UNIX系統(tǒng)采用了調(diào)頁機(jī)制,即系統(tǒng)copy一些內(nèi)存中的頁面到磁盤上,騰出來空間供進(jìn)程使用。大多數(shù)系統(tǒng)可以忍受偶爾的調(diào)頁,但是頻繁的調(diào)頁會(huì)使系統(tǒng)性能急劇下降。UNIX內(nèi)存管理:UNIX系統(tǒng)通過2種方法進(jìn)行內(nèi)存管理,“調(diào)頁算法”,“交換技術(shù)”。調(diào)頁算法是將內(nèi)存中最近不常使用的頁面換到磁盤上,把常使用的頁面(活動(dòng)頁面)保留在內(nèi)存中供進(jìn)程使用。交換技術(shù)是系統(tǒng)將整個(gè)進(jìn)程,
37、而不是部分頁面,全部換到磁盤上。正常情況下,系統(tǒng)會(huì)發(fā)生一些交換過程。當(dāng)內(nèi)存嚴(yán)重不足時(shí),系統(tǒng)會(huì)頻繁使用調(diào)頁和交換,這增加了磁盤I/O的負(fù)載。進(jìn)一步降低了系統(tǒng)對(duì)作業(yè)的執(zhí)行速度,即系統(tǒng)I/O資源問題又會(huì)影響到內(nèi)存資源的分配。Unix的虛擬內(nèi)存Unix的虛擬內(nèi)存是一個(gè)十分復(fù)雜的子系統(tǒng),它實(shí)現(xiàn)了進(jìn)程間代碼與數(shù)據(jù)共享機(jī)制的透明性,并能夠分配比系統(tǒng)現(xiàn)有物理內(nèi)存更多的內(nèi)存,某些操作系統(tǒng)的虛存甚至能通過提供緩存功能影響到文件系統(tǒng)的性能,各種風(fēng)格的UNIX的虛存的實(shí)現(xiàn)方式區(qū)別很大,但都離不開下面的4個(gè)概念。1:實(shí)際內(nèi)存實(shí)際內(nèi)存是指一個(gè)系統(tǒng)中實(shí)際存在的物理內(nèi)存,稱為RAM。實(shí)際內(nèi)存是存儲(chǔ)臨時(shí)數(shù)據(jù)最快最有效的方式,因
38、此必須盡可能地分配給應(yīng)用程序,現(xiàn)在的RAM的形式有多種:SIMM、DIMM、Rambus、DDR等,很多RAM都可以使用糾錯(cuò)機(jī)制(ECC)。2:交換空間交換空間是專門用于臨時(shí)存儲(chǔ)內(nèi)存的一塊磁盤空間,通常在頁面調(diào)度和交換進(jìn)程數(shù)據(jù)時(shí)使用,通常推薦交換空間的大小應(yīng)該是物理內(nèi)存的二到四倍。3:頁面調(diào)度頁面調(diào)度是指從磁盤向內(nèi)存?zhèn)鬏敂?shù)據(jù),以及相反的過程,這個(gè)過程之所以被稱為頁面調(diào)度,是因?yàn)閁nix內(nèi)存被平均劃分成大小相等的頁面;通常頁面大小為 4KB和8KB(在Solaris中可以用pagesize命令查看)。當(dāng)可執(zhí)行程序開始運(yùn)行時(shí),它的映象會(huì)一頁一頁地從磁盤中換入,與此類似,當(dāng)某些內(nèi) 存在一段時(shí)間內(nèi)空閑
39、,就可以把它們換出到交換空間中,這樣就可以把空閑的RAM交給其他需要它的程序使用。4:交換頁面調(diào)度通常容易和交換的概念混淆,頁面調(diào)度是指把一個(gè)進(jìn)程所占內(nèi)存的空閑部分傳輸?shù)酱疟P上,而交換是指當(dāng)系統(tǒng)中實(shí)際的內(nèi)存已不夠滿足新的分配需求時(shí),把整個(gè)進(jìn)程傳輸?shù)酱疟P上,交換活動(dòng)通常意味著內(nèi)存不足。rootlocalhost # vmstat -n 3 (每個(gè)3秒刷新一次)procs-memory-swap-io- -system- -cpu-r b swpd free b
40、uff cache si so bi bo in cs us sy id wa1 0 144 186164 105252 2386848 0 0 18 166 83 &
41、#160; 2 48 21 31 02 0 144 189620 105252 2386848 0 0 0 177 1039 1210 34 10 56 00 0 144 214324 105252 2386848 0
42、; 0 0 10 1071 670 32 5 63 00 0 144 202212 105252 2386848 0 0 0 189 1035 558 20 3 77 02
43、0 144 158772 105252 2386848 0 0 0 203 1065 2832 70 14 15 0MEMORY-swap:切換到交換內(nèi)存上的內(nèi)存(默認(rèn)以KB為單位)如果SWAP的值不為0,或者還比較大,比如超過100M了,但是SI,SO的值長(zhǎng)期為0,這種情況我們可以不用擔(dān)心,不會(huì)影響系統(tǒng)性能。-free:空閑的物理內(nèi)存- buff:作為buffer cache的內(nèi)存,對(duì)塊設(shè)備的讀寫進(jìn)
44、行緩沖-cache:作為page cache的內(nèi)存,文件系統(tǒng)的cache如果cache的值大的時(shí)候,說明cache處的文件數(shù)多,如果頻繁訪問到的文件都能被cache處,那么磁盤的讀IO bi會(huì)非常小。SWAP-si:交換內(nèi)存使用,由磁盤調(diào)入內(nèi)存-so:交換內(nèi)存使用,由內(nèi)存調(diào)入磁盤內(nèi)存夠用的時(shí)候,這2個(gè)值都是0,如果這2個(gè)值長(zhǎng)期大于0時(shí),系統(tǒng)性能會(huì)受到影響,磁盤IO和CPU資源都會(huì)被消耗。我發(fā)現(xiàn)有些朋友看到空閑內(nèi)存(FREE)很少的或接近于0時(shí),就認(rèn)為內(nèi)存不夠用了,實(shí)際上不能光看這一點(diǎn),Linux是搶占內(nèi)存式的OS,還要結(jié)合si,so,如果free很少,但是si,so也很少(大多時(shí)候是0),那么
45、不用擔(dān)心,系統(tǒng)性能這時(shí)不會(huì)受到影響的。Linux命令-分析CPU的瓶頸衡量CPU性能的指標(biāo):1,用戶使用CPU的情況;CPU運(yùn)行常規(guī)用戶進(jìn)程CPU運(yùn)行niced processCPU運(yùn)行實(shí)時(shí)進(jìn)程2,系統(tǒng)使用CPU情況;用于I/O管理:中斷和驅(qū)動(dòng)用于內(nèi)存管理:頁面交換用戶進(jìn)程管理:進(jìn)程開始和上下文切換3,WIO:用于進(jìn)程等待磁盤I/O而使CPU處于空閑狀態(tài)的比率。4,CPU的空閑率,除了上面的WIO以外的空閑時(shí)間5,CPU用于上下文交換的比率6,nice7,real-time8,運(yùn)行進(jìn)程隊(duì)列的長(zhǎng)度9,平均負(fù)載Linux中常用的監(jiān)控CPU整體性能的工具有:? mpstat: mpstat 不但能查
46、看所有CPU的平均信息,還能查看指定CPU的信息。? vmstat:只能查看所有CPU的平均信息;查看cpu隊(duì)列信息;? iostat: 只能查看所有CPU的平均信息。? sar: 與mpstat 一樣,不但能查看CPU的平均信息,還能查看指定CPU的信息。? top:顯示的信息同ps接近,但是top可以了解到CPU消耗,可以根據(jù)用戶指定的時(shí)間來更新顯示。下面一一介紹:一,vmstatrootlocalhost #vmstat -n 3 (每個(gè)3秒刷新一次)procs-memory-swap- -io- -system- -cpu-r b
47、 swpd free buff cache si so bi bo in cs us sy id wa10 144 186164 105252 2386848 0 0
48、 18 166 83 2 48 21 31 020 144 189620 105252 2386848 0 0 0 177 1039 1210 34 10 56 000 144 214324
49、105252 2386848 0 0 0 10 1071 670 32 5 63 000 144 202212 105252 2386848 0 0 0 189 1035 558 20
50、160; 3 77 020 144 158772 105252 2386848 0 0 0 203 1065 2832 70 14 15 0紅色內(nèi)容標(biāo)示CPU相關(guān)的參數(shù)PROC(ESSES)-r:如果在processes中運(yùn)行的序列(process r)是連續(xù)的大于在系統(tǒng)中的CPU的個(gè)數(shù)表示系統(tǒng)現(xiàn)在運(yùn)行比較慢,有多數(shù)的進(jìn)程等待CPU.如果r的輸出數(shù)大于系
51、統(tǒng)中可用CPU個(gè)數(shù)的4倍的話,則系統(tǒng)面臨著CPU短缺的問題,或者是CPU的速率過低,系統(tǒng)中有多數(shù)的進(jìn)程在等待CPU,造成系統(tǒng)中進(jìn)程運(yùn)行過慢.SYSTEM-in:每秒產(chǎn)生的中斷次數(shù)-cs:每秒產(chǎn)生的上下文切換次數(shù)上面2個(gè)值越大,會(huì)看到由內(nèi)核消耗的CPU時(shí)間會(huì)越大CPU-us:用戶進(jìn)程消耗的CPU時(shí)間百分us的值比較高時(shí),說明用戶進(jìn)程消耗的CPU時(shí)間多,但是如果長(zhǎng)期超50%的使用,那么我們就該考慮優(yōu)化程序算法或者進(jìn)行加速(比如PHP/PERL)-sy:內(nèi)核進(jìn)程消耗的CPU時(shí)間百分比(sy的值高時(shí),說明系統(tǒng)內(nèi)核消耗的CPU資源多,這并不是良性表現(xiàn),我們應(yīng)該檢查原因)-wa:IO等待消耗的CPU時(shí)間百
52、分比wa的值高時(shí),說明IO等待比較嚴(yán)重,這可能由于磁盤大量作隨機(jī)訪問造成,也有可能磁盤出現(xiàn)瓶頸(塊操作)。-id:CPU處于空閑狀態(tài)時(shí)間百分比,如果空閑時(shí)間(cpu id)持續(xù)為0并且系統(tǒng)時(shí)間(cpu sy)是用戶時(shí)間的兩倍(cpu us) 系統(tǒng)則面臨著CPU資源的短缺.解決辦法:當(dāng)發(fā)生以上問題的時(shí)候請(qǐng)先調(diào)整應(yīng)用程序?qū)PU的占用情況.使得應(yīng)用程序能夠更有效的使用CPU.同時(shí)可以考慮增加更多的CPU. 關(guān)于CPU的使用情 況還可以結(jié)合mpstat, ps aux top prstat ?a等等一些相應(yīng)的命令來綜合考慮關(guān)于具體的CPU的使用情況,和那些進(jìn)程在占
53、用大量的CPU時(shí)間.一般情況下,應(yīng)用程序的問題會(huì)比較大一些.比如一些 SQL語句不合理等等都會(huì)造成這樣的現(xiàn)象.二,sarsar options -A -o file t n在命令行中,n 和t 兩個(gè)參數(shù)組合起來定義采樣間隔和次數(shù),t為采樣間隔,是必須有的參數(shù),n為采樣次數(shù),是可選的,默認(rèn)值是1,-o file表示將命令結(jié)果以二進(jìn)制格式存放在文件中,file 在此處不是關(guān)鍵字,是文件名。options 為命令行選項(xiàng),sar命令的選項(xiàng)很多,下面只列出常用選項(xiàng):-A:所有報(bào)告的總和。-u:CPU利用率-v:進(jìn)程、I節(jié)點(diǎn)、文件和鎖表狀態(tài)。-d:硬盤使用報(bào)告。-r:內(nèi)存和交換空間的使用統(tǒng)計(jì)。-g:串口I
54、/O的情況。-b:緩沖區(qū)使用情況。-a:文件讀寫情況。-c:系統(tǒng)調(diào)用情況。-q:報(bào)告隊(duì)列長(zhǎng)度和系統(tǒng)平均負(fù)載-R:進(jìn)程的活動(dòng)情況。-y:終端設(shè)備活動(dòng)情況。-w:系統(tǒng)交換活動(dòng)。-x pid | SELF | ALL :報(bào)告指定進(jìn)程ID的統(tǒng)計(jì)信息,SELF關(guān)鍵字是sar進(jìn)程本身的統(tǒng)計(jì),ALL關(guān)鍵字是所有系統(tǒng)進(jìn)程的統(tǒng)計(jì)。用sar進(jìn)行CPU利用率的分析#sar -u 2 10Linux 2.6.18-53.el5PAE (localhost.localdomain) 03/28/200907:40:17 PM CPU %u
55、ser %nice %system %iowait %steal %idle07:40:19 PM all 12.44 0.00 6.97 1.74 0.00
56、 78.8607:40:21 PM all 26.75 0.00 12.50 16.00 0.00 44.7507:40:23 PM all
57、160; 16.96 0.00 7.98 0.00 0.00 75.0607:40:25 PM all 22.50 0.00
58、60; 7.00 3.25 0.00 67.2507:40:27 PM all 7.25 0.00 2.75 2.50
59、 0.00 87.5007:40:29 PM all 20.05 0.00 8.56 2.93 0.00 68.4607:40:31 PM
60、60; all 13.97 0.00 6.23 3.49 0.00 76.3107:40:33 PM all 8.25
61、; 0.00 0.75 3.50 0.00 87.5007:40:35 PM all 13.25 0.00 5.75
62、 4.00 0.00 77.0007:40:37 PM all 10.03 0.00 0.50 2.51 0.00
63、160; 86.97Average: all 15.15 0.00 5.91 3.99 0.00 74.95在顯示內(nèi)容包括:%user:CPU處在用戶模式下的時(shí)
64、間百分比。 %nice:CPU處在帶NICE值的用戶模式下的時(shí)間百分比。%system:CPU處在系統(tǒng)模式下的時(shí)間百分比。%iowait:CPU等待輸入輸出完成時(shí)間的百分比。 %steal:管理程序維護(hù)另一個(gè)虛擬處理器時(shí),虛擬CPU的無意識(shí)等待時(shí)間百分比。%idle:CPU空閑時(shí)間百分比。 在所有的顯示中,我們應(yīng)主要注意%iowait和%idle,%iowait的值過高,表示硬盤存在I/O瓶頸,%idle值高,表示CPU較空 閑,如果
65、%idle值高但系統(tǒng)響應(yīng)慢時(shí),有可能是CPU等待分配內(nèi)存,此時(shí)應(yīng)加大內(nèi)存容量。%idle值如果持續(xù)低于10,那么系統(tǒng)的CPU處理能力相對(duì) 較低,表明系統(tǒng)中最需要解決的資源是CPU。用sar進(jìn)行運(yùn)行進(jìn)程隊(duì)列長(zhǎng)度分析:#sar -q 2 10Linux 2.6.18-53.el5PAE (localhost.localdomain) 03/28/200907:58:14 PM runq-sz plist-sz ldavg-1 ldavg-5 ldavg-1507:58:16 PM
66、 0 493 0.64 0.56 0.4907:58:18 PM 1 491 0.64 0.56
67、0; 0.4907:58:20 PM 1 488 0.59 0.55 0.4907:58:22 PM 0 487
68、160;0.59 0.55 0.4907:58:24 PM 0 485 0.59 0.55 0.4907:58:26 PM 1
69、60; 483 0.78 0.59 0.5007:58:28 PM 0 481 0.78 0.59 0.50
70、07:58:30 PM 1 480 0.72 0.58 0.5007:58:32 PM 0 477 0.72
71、0; 0.58 0.5007:58:34 PM 0 474 0.72 0.58 0.50Average: 0
72、; 484 0.68 0.57 0.49runq-sz 準(zhǔn)備運(yùn)行的進(jìn)程運(yùn)行隊(duì)列。plist-sz 進(jìn)程隊(duì)列里的進(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
73、avarage的含義load average可以理解為size=+0每秒鐘CPU等待運(yùn)行的進(jìn)程個(gè)數(shù).在Linux系統(tǒng)中,sar -q、uptime、w、top等命令都會(huì)有系統(tǒng)平均負(fù)載load average的輸出,那么什么是系統(tǒng)平均負(fù)載呢?系統(tǒng)平均負(fù)載被定義為在特定時(shí)間間隔內(nèi)運(yùn)行隊(duì)列中的平均任務(wù)數(shù)。如果一個(gè)進(jìn)程滿足以下條件則其就會(huì)位于運(yùn)行隊(duì)列中:- 它沒有在等待I/O操作的結(jié)果- 它沒有主動(dòng)進(jìn)入等待狀態(tài)(也就是沒有調(diào)用'wait')- 沒有被停止(例如:等待終止)例如:# uptime20:55:40 up 24 days, 3:06, 1 user,
74、 load average: 8.13, 5.90, 4.94命令輸出的最后內(nèi)容表示在過去的1、5、15分鐘內(nèi)運(yùn)行隊(duì)列中的平均進(jìn)程數(shù)量。一般來說只要每個(gè)CPU的當(dāng)前活動(dòng)進(jìn)程數(shù)不大于3那么系統(tǒng)的性能就是良好的,如果每個(gè)CPU的任務(wù)數(shù)大于5,那么就表示這臺(tái)機(jī)器的性能有嚴(yán)重問題。對(duì) 于上面的例子來說,假設(shè)系統(tǒng)有兩個(gè)CPU,那么其每個(gè)CPU的當(dāng)前任務(wù)數(shù)為:8.13/2=4.065。這表示該系統(tǒng)的性能是可以接受的。三,iostat#iostat -c 2 10Linux 2.6.18-53.el5PAE (localhost.localdomain) 03/28/2009avg-c
75、pu: %user %nice %system %iowait %steal %idle 30.10 0.00 4.89 5.63 0.00 59.38avg-cpu: %user %nice
76、%system %iowait %steal %idle 8.46 0.00 1.74 0.25 0.00 89.55avg-cpu: %user %nice %system %iowait
77、%steal %idle 22.06 0.00 11.28 1.25 0.00 65.41四,mpstatmpstat是 Multiprocessor Statistics的縮寫,是實(shí)時(shí)系統(tǒng)監(jiān)控工具。其報(bào)告與CPU的一些統(tǒng)計(jì)信息,這些信息存放在/proc/stat文件中
78、。在多CPUs系統(tǒng)里,其不 但能查看所有CPU的平均狀況信息,而且能夠查看特定CPU的信息。下面只介紹 mpstat與CPU相關(guān)的參數(shù),mpstat的語法如下:mpstat -P |ALL internal count參數(shù)的含義如下:參數(shù) 解釋-P |ALL 表示監(jiān)控哪個(gè)CPU, cpu在0,cpu個(gè)數(shù)-1中取值internal 相鄰的兩次采樣的間隔時(shí)間count 采樣的次數(shù),count只能和delay一起使用當(dāng)沒有參數(shù)時(shí),mpstat則顯示系統(tǒng)啟動(dòng)以后所有信息的平均值。有interval時(shí),第一行的信息自系統(tǒng)啟動(dòng)以來的平均信息。從第二行開始,輸出為前一個(gè)interval時(shí)間段的平均信息。與C
79、PU有關(guān)的輸出的含義如下:參數(shù) 解釋 從/proc/stat獲得數(shù)據(jù)CPU 處理器IDuser 在internal時(shí)間段里,用戶態(tài)的CPU時(shí)間(%) ,不包含 nice值為負(fù) 進(jìn)程 ?usr/?total*100nice 在internal時(shí)間段里,nice值為負(fù)進(jìn)程的CPU時(shí)間(%) ?nice/?total*100system 在internal時(shí)間段里,核心時(shí)間(%) ?system/?total*100iowait 在internal時(shí)間段里,硬盤IO等待時(shí)間(%) ?iowait/?total*100irq 在internal時(shí)間段里,軟中斷時(shí)間(%) ?irq/?total*100
80、soft 在internal時(shí)間段里,軟中斷時(shí)間(%) ?softirq/?total*100idle 在internal時(shí)間段里,CPU除去等待磁盤IO操作外的因?yàn)槿魏卧蚨臻e的時(shí)間閑置時(shí)間 (%) ?idle/?total*100intr/s 在internal時(shí)間段里,每秒CPU接收的中斷的次數(shù) ?intr/?total*100CPU總的工作時(shí)間=total_cur=user+system+nice+idle+iowait+irq+softirqtotal_pre=pre_user+ pre_system+ pre_nice+ pre_idle+ pre_iowait+ pre_irq
81、+ pre_softirq?user=user_cur ? user_pre?total=total_cur-total_pre其中_cur 表示當(dāng)前值,_pre表示interval時(shí)間前的值。上表中的所有值可取到兩位小數(shù)點(diǎn)。#mpstat -P ALL 2 10Linux 2.6.18-53.el5PAE (localhost.localdomain) 03/28/200910:07:57 PM CPU %user %nice %sys %iowait %irq %soft
82、 %steal %idle intr/s10:07:59 PM all 20.75 0.00 10.50 1.50 0.25 0.25 0.00 66.75 1294.5010:07:59 PM 0 16.00 0.00 9.00 1
83、.50 0.00 0.00 0.00 73.50 1000.5010:07:59 PM 1 25.76 0.00 12.12 1.52 0.00 0.51 0.00 60.10 294.00 閱讀全文 如何優(yōu)化linux系01)不用root ,添加普通用戶,通過sudo授權(quán)管理。02)更改默認(rèn)的遠(yuǎn)程連接SSH服務(wù)端口及禁止root用戶遠(yuǎn)程連接。
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度房地產(chǎn)面積測(cè)繪與房地產(chǎn)營銷合同3篇
- 二零二五年度宗教場(chǎng)所租賃合同樣本3篇
- Unit 3 Sports and Fitness Listening and Talking 說課稿-2024-2025學(xué)年高一英語人教版(2019)必修第一冊(cè)
- 冬季滑雪運(yùn)動(dòng)
- Unit 7 International charities-study skills 說課稿 2024-2025學(xué)年牛津譯林版八年級(jí)英語下冊(cè)
- 二零二五年度房地產(chǎn)開發(fā)前期合同翻譯與國際化服務(wù)合同3篇
- 貴州商學(xué)院《模具CAD》2023-2024學(xué)年第一學(xué)期期末試卷
- 貴州輕工職業(yè)技術(shù)學(xué)院《電子商務(wù)A》2023-2024學(xué)年第一學(xué)期期末試卷
- 二零二五年度企業(yè)年金管理服務(wù)合同規(guī)范文本3篇
- 2024年九年級(jí)語文教學(xué)計(jì)劃方案(31篇)
- 圍墻維修 施工方案
- 創(chuàng)傷關(guān)節(jié)骨科年度總結(jié)
- 2022-2023學(xué)年江蘇省鹽城第一學(xué)期高一期末考試數(shù)學(xué)試卷及答案解析-普通用卷
- 醫(yī)師病理知識(shí)定期考核試題與答案
- 履約情況證明(共6篇)
- 礦井提升容器課件
- 云南省迪慶藏族自治州各縣區(qū)鄉(xiāng)鎮(zhèn)行政村村莊村名居民村民委員會(huì)明細(xì)
- 《潔凈工程項(xiàng)目定額》(征求意見稿)
- 城鎮(zhèn)燃?xì)庠O(shè)計(jì)規(guī)范
- 年零售藥店操作規(guī)程版
- 日有所誦(二年級(jí))
評(píng)論
0/150
提交評(píng)論