




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、細(xì)說 Linux 系統(tǒng)優(yōu)化-實(shí)踐篇作為一名 linux 系統(tǒng)管理員,最主要的工作是優(yōu)化系統(tǒng)配置,使應(yīng)用在系統(tǒng)上以最優(yōu)的狀態(tài)運(yùn)行,但是由于硬件問題、問題、網(wǎng)絡(luò)環(huán)境等的復(fù)雜性 和多變性,導(dǎo)致對(duì)系統(tǒng)的優(yōu)化變得異常復(fù)雜,如何定位性能問題出在哪個(gè)方面,是性能優(yōu)化的一題, 本章從系統(tǒng)入手,重點(diǎn)講述由于系統(tǒng)軟、硬件配置不當(dāng)可能造成的性能問題,并且給出了檢測(cè)系統(tǒng)故障和優(yōu)化性能的一般方法和流程。1 cpu 性能評(píng)估Cpu 是影響 Linux 性能的主要之一,下面先介紹幾個(gè)查看 CPU 性能令。1.1 vms命令該命令可以顯示關(guān)于系統(tǒng)各種資源之間相關(guān)性能的簡(jiǎn)要信息,這里主要用它來看 CPU 的一個(gè)負(fù)載情況。下面是
2、 vms命令在某個(gè)系統(tǒng)的輸出結(jié)果:rootnode1 # vms2 3procsmemoryswap-io-system-cpurbswpdfreebuffcachesisobiboincsussyidwa st0001622408304670320019800000162240830467032001010102001100 000001622408304670320011100918019900對(duì)上面每項(xiàng)的輸出解釋如下:procsr 列表示運(yùn)行和等待 cpu 時(shí)間片的進(jìn)程數(shù),這個(gè)值如果長(zhǎng)期大于系統(tǒng) CPU 的個(gè)數(shù),說明 CPU,需要增加 CPU。b 列表示在等待資源的進(jìn)程數(shù),比如正在等待
3、I/O、或者內(nèi)存交換等。memoryswpd 列表示切換到內(nèi)存交換區(qū)的內(nèi)存數(shù)量(以 k 為)。如果 swpd 的值不為 0,或者比較大,只要si、so 的值長(zhǎng)期為 0,這種情況下一般不用擔(dān)心,不會(huì)影響系統(tǒng)性能。free 列表示當(dāng)前空閑的物理內(nèi)存數(shù)量(以 k 為)buff 列表示 buffers cache 的內(nèi)存數(shù)量,一般對(duì)塊設(shè)備的讀寫才需要緩沖。cache 列表示 page cached 的內(nèi)存數(shù)量,一般作為文件系統(tǒng) cached,頻繁的文件都會(huì)被 cached,如果 cache 值較大,說明 cached 的文件數(shù)較多,如果此時(shí) IO 中bi 比較小,說明文件系統(tǒng)效率比較好。swapsi
4、列表示由磁盤調(diào)入內(nèi)存,也就是內(nèi)存進(jìn)入內(nèi)存交換區(qū)的數(shù)量。so 列表示由內(nèi)存調(diào)入磁盤,也就是內(nèi)存交換區(qū)進(jìn)入內(nèi)存的數(shù)量。一般情況下,si、so 的值都為 0,如果 si、so 的值長(zhǎng)期不為 0,則表示系統(tǒng)內(nèi)存。需要增加系統(tǒng)內(nèi)存。IO 項(xiàng)顯示磁盤讀寫狀況Bi 列表示從塊設(shè)備讀入數(shù)據(jù)的總量(即讀磁盤)(每秒 kb)。Bo 列表示寫入到塊設(shè)備的數(shù)據(jù)總量(即寫磁盤)(每秒 kb)這里設(shè)置的 bi+bo 參考值為 1000,如果超過 1000,而且 wa 值較大,則表示系統(tǒng)磁盤 IO 有問題,應(yīng)該考慮提高磁盤的讀寫性能。system 顯示間隔內(nèi)發(fā)生的中斷數(shù)in 列表示在某一時(shí)間間隔中觀測(cè)到的每秒設(shè)備中斷數(shù)。c
5、s 列表示每秒產(chǎn)生的上下文切換次數(shù)。上面這 2 個(gè)值越大,會(huì)看到由內(nèi)核消耗的 CPU 時(shí)間會(huì)越多。CPU 項(xiàng)顯示了 CPU 的使用狀態(tài),此列是關(guān)注的重點(diǎn)。us 列顯示了用戶進(jìn)程消耗的 CPU 時(shí)間百分比。us 的值比較高時(shí),說明用戶進(jìn)程消耗的 cpu 時(shí)間多,但是如果長(zhǎng)期大于 50%,就需要考慮優(yōu)化程序或算法。sy 列顯示了內(nèi)核進(jìn)程消耗的 CPU 時(shí)間百分比。Sy 的值較高時(shí),說明內(nèi)核消耗的 CPU 資源很多。根據(jù)經(jīng)驗(yàn),us+sy 的參考值為 80%,如果 us+sy 大于 80%說明可能存在 CPU 資源。id 列顯示了 CPU 處在空閑狀態(tài)的時(shí)間百分比。wa 列顯示了 IO 等待所占用的
6、CPU 時(shí)間百分比。wa 值越高,說明 IO 等待越嚴(yán)重,根據(jù)經(jīng)驗(yàn),wa 的參考值為 20%,如果 wa 超過 20%,說明 IO 等待嚴(yán)重,引起 IO 等待的原因可能是磁盤大量隨機(jī)讀寫造成的,也可能是磁盤或者磁盤控制器的帶寬瓶頸造成的(主要是塊操作)。綜上所述,在對(duì) CPU 的評(píng)估中,需要重點(diǎn)注意的是 procs 項(xiàng) r 列的值和 CPU 項(xiàng)中 us、sy 和id 列的值。1.2sar 命令檢查 CPU 性能的第二個(gè)工具是 sar,sar 功能很強(qiáng)大,可以對(duì)系統(tǒng)的每個(gè)方面進(jìn)行單獨(dú)的統(tǒng)計(jì),但是使用sar 命令會(huì)增加系統(tǒng)開銷,不過這些開銷是可以評(píng)估的,對(duì)系統(tǒng)的統(tǒng)計(jì)結(jié)果不會(huì)有很大影響。下面是 sa
7、r 命令對(duì)某個(gè)系統(tǒng)的 CPU 統(tǒng)計(jì)輸出:rootwebserver # sar -u 3 5Linux 2.6.9-42.ELsmp(webserver)11/28/2008_i686_(8CPU)11:41:24AMCPU%user%nice%system%iowait%steal%idle11:41:27AMall0.880.000.290.000.0098.8311:41:30AMall0.130.000.170.210.0099.5011:41:33AMall0.040.000.040.000.0099.9211:41:36AMall0.290.000.130.000.0099.581
8、1:41:39AMall0.380.000.170.040.0099.41Average:all0.340.000.160.050.0099.45對(duì)上面每項(xiàng)的輸出解釋如下:%user 列顯示了用戶進(jìn)程消耗的 CPU時(shí)間百分比。%nice 列顯示了運(yùn)行正常進(jìn)程所消耗的 CPU 時(shí)間百分比。%system 列顯示了系統(tǒng)進(jìn)程消耗的 CPU 時(shí)間百分比。%iowait 列顯示了 IO 等待所占用的 CPU 時(shí)間百分比%steal 列顯示了在內(nèi)存相對(duì)緊張的環(huán)境下 pagein 強(qiáng)制對(duì)不同的頁面進(jìn)行的 steal 操作。%idle 列顯示了 CPU 處在空閑狀態(tài)的時(shí)間百分比。這個(gè)輸出是對(duì)系統(tǒng)整體 CPU
9、使用狀況的統(tǒng)計(jì),每項(xiàng)的輸出都非常直觀,并且最后一行 Average 是個(gè)匯總行,是上面統(tǒng)計(jì)信息的一個(gè)平均值。需要注意的一點(diǎn)是:第一行的統(tǒng)計(jì)信息中包含了 sar 本身的統(tǒng)計(jì)消耗,所以%user 列的值會(huì)偏高一點(diǎn),不過,這不會(huì)對(duì)統(tǒng)計(jì)結(jié)果產(chǎn)生多大影響。在一個(gè)多 CPU 的系統(tǒng)中,如果程序使用了單線程,會(huì)出現(xiàn)這么一個(gè)現(xiàn)象,CPU 的整體使用率不高,但是系統(tǒng)應(yīng)用卻響應(yīng)緩慢,這可能是由于程序使用單線程的原因,單線程只使用一個(gè) CPU,導(dǎo)致這個(gè) CPU 占用率為 100%,無法處理其它請(qǐng)求,而其它的 CPU 卻閑置,這就導(dǎo)致 了整體 CPU 使用率不高,而應(yīng)用緩慢 現(xiàn)象的發(fā)生 。針對(duì)這個(gè)問題,可以對(duì)系統(tǒng)的每
10、個(gè) CPU 分開查詢,統(tǒng)計(jì)每個(gè) CPU 的使用情況:rootwebserver # sar -P 0 3 5Linux 2.6.9-42.ELsmp(webserver)11/29/2008_i686_(8CPU)06:29:33PMCPU%user%nice%system%iowait%steal%idle06:29:36PM03.000.000.330.000.0096.6706:29:39PM00.670.000.330.000.0099.0006:29:42PM00.000.000.330.000.0099.6706:29:45PM00.670.000.330.000.0099.000
11、6:29:48PM01.000.000.330.330.0098.34Average:01.070.000.330.070.0098.53這個(gè)輸出是對(duì)系統(tǒng)的第一顆 CPU 的信息統(tǒng)計(jì),需要注意的是,sar 中對(duì) CPU 的計(jì)數(shù)是從 0 開始的,因此,“sar -P 0 3 5”表示對(duì)系統(tǒng)的第一顆 CPU 進(jìn)行信息統(tǒng)計(jì),“sar -P 4 3 5”則表示對(duì)系統(tǒng)的第五顆 CPU進(jìn)行統(tǒng)計(jì)。依次類推。可以看出,上面的系統(tǒng)有八顆 CPU。1.3 ios命令ios指令主要用于統(tǒng)計(jì)磁盤 IO 狀態(tài),但是也能查看 CPU 的使用信息,它的局限性是只能顯示系統(tǒng)所有 CPU 的平均信息,看下面的一個(gè)輸出:root
12、webserver # ios-cLinux 2.6.9-42.ELsmp (webserver)11/29/2008_i686_(8 CPU)avg-cpu:%user%nice%system%iowait%steal%idle2.520.000.300.240.0096.96在這里,使用了“-c”參數(shù),只顯示系統(tǒng) CPU 的統(tǒng)計(jì)信息,輸出中每項(xiàng)代表的含義與 sar 命令的輸出項(xiàng)完全相同,不再詳述。1.4 uptime 命令uptime 是系統(tǒng)性能最常用的一個(gè)命令,主要用來統(tǒng)計(jì)系統(tǒng)當(dāng)前的運(yùn)行狀況,輸出的信息依次為:系統(tǒng)現(xiàn)在的時(shí)間、系統(tǒng)從上次開機(jī)到現(xiàn)在運(yùn)行了多長(zhǎng)時(shí)間、系統(tǒng)目前有多少登陸用戶、系
13、統(tǒng)在一分鐘內(nèi)、五分鐘內(nèi)、十內(nèi)的平均負(fù)載。看下面的一個(gè)輸出:rootwebserver # uptime18:52:11 up 27 days, 19:44,2 users,load average: 0.12, 0.08, 0.08這里需要注意的是 load average 這個(gè)輸出值,這三個(gè)值的大小一般不能大于系統(tǒng) CPU 的個(gè)數(shù),例如,本輸出中系統(tǒng)有 8 個(gè) CPU,如果 load average 的三個(gè)值長(zhǎng)期大于 8 時(shí),說明 CPU 很繁忙,負(fù)載很高,可能會(huì)影響系統(tǒng)性能,但是偶爾大于 8 時(shí),倒不用擔(dān)心,一般不會(huì)影響系統(tǒng)性能。相反,如果 load average 的輸出值小于 CPU
14、的個(gè)數(shù),則表示 CPU 還有空閑的時(shí)間片,比如本例中的輸出,CPU 是非常空閑的。1.5 本節(jié)小結(jié)上面介紹了檢查 CPU 使用狀況的四個(gè)命令,通過這些命令需要了解的是:系統(tǒng) CPU 是否出現(xiàn)性能瓶頸,也就是說,以上這些命令只能查看 CPU 是否繁忙,負(fù)載是否過大,但是無法知道 CPU 為何負(fù)載過大,因而,判斷系統(tǒng) CPU 出現(xiàn)問題后,要結(jié)合 top、ps 等命令進(jìn)一步檢查是由那些進(jìn)程導(dǎo)致 CPU 負(fù)載過大的。引起 CPU資源緊缺的原因可能是應(yīng)用程序不合理造成的,也可能是硬件資源匱乏引起的,所以,要具體問題具體分析,或者優(yōu)化應(yīng)用程序,或者增加系統(tǒng) CPU 資源。2 內(nèi)存性能評(píng)估內(nèi)存的管理和優(yōu)化是
15、系統(tǒng)性能優(yōu)化的一個(gè)重要部分,內(nèi)存資源的充足與否直接影響應(yīng)用系統(tǒng)的使用性能,在進(jìn)行內(nèi)存優(yōu)化之前,一定要熟悉 linux 的內(nèi)存管理機(jī)制,這一點(diǎn)面的章節(jié)已經(jīng)有深入講述,本節(jié)的重點(diǎn)是如何通過系統(tǒng)命令linux 系統(tǒng)的內(nèi)存使用狀況。2.1 free 命令free 是linux 內(nèi)存使用狀況最常用的指令,看下面的一個(gè)輸出:rootwebserver # free -mtotalusedfreesharedbufferscachedMem:8111718592502436299-/+ buffers/cache:6437468Swap:818908189“free m”表示以M 為查看內(nèi)存使用情況,在這個(gè)
16、輸出中重點(diǎn)關(guān)注的應(yīng)該是free 列與 cached列的輸出值,由輸出可知,此系統(tǒng)共 8G 內(nèi)存,系統(tǒng)空閑內(nèi)存還有 925M,其中,Buffer Cache 占用了 243M,Page Cache 占用了 6299M,由此可知系統(tǒng)緩存了很多的文件和目錄,而對(duì)于應(yīng)用程序來說,可以使用的內(nèi)存還有 7468M,當(dāng)然這個(gè) 7468M 包含了 Buffer Cache 和 Page Cache 的值。在 swap 項(xiàng)可以看出,交換分區(qū)還未使用。所以從應(yīng)用的角度來說,此系統(tǒng)內(nèi)存資源還非常充足。一般有這樣一個(gè)經(jīng)驗(yàn)公式:應(yīng)用程序可用內(nèi)存/系統(tǒng)物理內(nèi)存70%時(shí),表示系統(tǒng)內(nèi)存資源非常充足,不影響系統(tǒng)性能,應(yīng)用程序可
17、用內(nèi)存/系統(tǒng)物理內(nèi)存20%時(shí),表示系統(tǒng)內(nèi)存資源緊缺,需要增加系統(tǒng)內(nèi)存,20%應(yīng)用程序可用內(nèi)存/系統(tǒng)物理內(nèi)存70%時(shí),表示系統(tǒng)內(nèi)存資源基本能滿足應(yīng)用需求,暫時(shí)不影響系統(tǒng)性能。free 命令還可以適時(shí)的內(nèi)存的使用狀況,使用“-s”參數(shù)可以在指定的時(shí)間段內(nèi)不間斷的內(nèi)存的使用情況:rootwebserver # free -b -s 5totalusedfreesharedbufferscachedMem:75287060489771950080260112384 6601158656-/+ buffers/cache:667435008 7838466048Swap:163840totalusedf
18、reesharedbufferscachedMem:75269365769789644800260128768 6601142272-/+ buffers/cache:665665536 7840235520Swap:163840totalusedfreesharedbufferscachedMem:75239874569819136000260141056 6601129984-/+ buffers/cache:662716416 7843184640Swap:163840其中,“-b”表示以千字節(jié)(也就是 1024 字節(jié)為)來顯示內(nèi)存使用情況。2.2 通過 watch 與 free 相結(jié)合
19、動(dòng)態(tài)內(nèi)存狀況watch 是一個(gè)非常有用令,幾乎每個(gè) linux版都帶有這個(gè)工具,通過 watch,可以動(dòng)態(tài)的命令的運(yùn)行結(jié)果,省去手動(dòng)執(zhí)行的麻煩。可以在 watch 后面跟上需要運(yùn)行令,watch 就會(huì)自動(dòng)重復(fù)去運(yùn)行這個(gè)命令,默認(rèn)是 2 秒鐘執(zhí)行一次,并把執(zhí)行的結(jié)果更新在屏幕上。例如:rootwebserver # watch -n 3 -d freeEvery 3.0s: freeSun Nov30 16:23:20 2008totalusedfreesharedbufferscachedMem:8306544734954895699602032966500024-/+ buffers/cac
20、he:6462287660316Swap:83858881608385728其中,“-n”指定重復(fù)執(zhí)行的時(shí)間,“-d”表示顯示變動(dòng)。2.3 vms命令內(nèi)存vms命令在系統(tǒng)內(nèi)存方面功能強(qiáng)大,請(qǐng)看下面的一個(gè)輸出:procsmemoryswapiosystemcpurbswpdfreebuffcachesisobiboincsussy idwa00906440227961556161325496320289054109528770150150090644042884155624132574823638721021064276782515對(duì)于內(nèi)存的,在 vms中重點(diǎn)關(guān)注的是 swpd、si 和 so
21、行,從這個(gè)輸出可以看出,此系統(tǒng)內(nèi)存資源緊缺,swpd 占用了 900M 左右內(nèi)存,si 和so 占用很大,而由于系統(tǒng)內(nèi)存的緊缺,導(dǎo)致出現(xiàn) 15%左右的系統(tǒng)等待,此時(shí)增加系統(tǒng)的內(nèi)存是必須要做的。2.4 sar -r 命令組合sar 命令也可以linux 的內(nèi)存使用狀況,可以通過“sar r”組合查看系統(tǒng)內(nèi)存和交換空間的使用率。請(qǐng)看下面的一個(gè)輸出:rootwebserver # sar -r 2 3Linux 2.6.9-42.ELsmp (webserver)11/30/2008_i686_(8 CPU)09:57:33PM kbmemfree kbmemused%memusedkbbuffer
22、skbcachedmit%commit09:57:35PM897988740855689.1924942864965327865564.7109:57:37PM898564740798089.1824942864965327842764.7009:57:39PM899196740734889.1724944064965207821324.69Average:898583740796189.1824943264965287843214.70其中:Kbmemfree 表示空閑物理內(nèi)存大小,kbmemused 表示已使用的物理內(nèi)存空間大小,%memused 表示已使用內(nèi)存占總內(nèi)存大小的百分比,kbb
23、uffers 和 kbcached 分別表示 Buffer Cache 和 Page Cache 的大小mit和%commit 分別表示應(yīng)用程序當(dāng)前使用的內(nèi)存大小和使用百分比。可以看出 sar 的輸出其實(shí)與 free 的輸出完全對(duì)應(yīng),不過 sar 更加人性化,不但給出了內(nèi)存使用量,還給出了內(nèi)存使用的百分比以及統(tǒng)計(jì)的平均值。從%commit 項(xiàng)可知,此系統(tǒng)目前內(nèi)存資源充足。2.5 本節(jié)小結(jié)上面介紹了內(nèi)存常用的幾個(gè)指令以及一些經(jīng)驗(yàn)規(guī)則,其實(shí)現(xiàn)在的系統(tǒng)在內(nèi)存方面出現(xiàn)的瓶頸已經(jīng)很少,因?yàn)閮?nèi)存價(jià)格很低,充足的內(nèi)存已經(jīng)完全能滿足應(yīng)用程序和系統(tǒng)本身的需要,如果系統(tǒng)在內(nèi)存方面出現(xiàn)瓶頸,很大的可能是應(yīng)用程序本身
24、造成的。3 磁盤 I/O 性能評(píng)估在對(duì)磁盤 I/O 性能做評(píng)估之前,必須知道的幾個(gè)方面是:熟悉 RAID方式,可以根據(jù)應(yīng)用的不同,選擇不同的 RAID 方式,例如,如果一個(gè)應(yīng)用經(jīng)常有大量的讀操作,可以選擇 RAID5 方式構(gòu)建磁盤陣列數(shù)據(jù),如果應(yīng)用有大量的、頻繁的寫操作,可以選擇 raid0存取方式,如果應(yīng)用對(duì)數(shù)據(jù)安全要求很高,同時(shí)對(duì)讀寫也有要求的話,可以考慮 raid01 存取方式等等。盡可能用內(nèi)存的讀寫代替直接磁盤 I/O,使頻繁的文件或數(shù)據(jù)放入內(nèi)存中進(jìn)行操作處理,因?yàn)閮?nèi)存讀寫操作比直接磁盤讀寫的效率要高千倍。將經(jīng)常進(jìn)行讀寫的文件與長(zhǎng)期不變的文件獨(dú)立出來,分別放置到不同的磁盤設(shè)備上。對(duì)于寫
25、操作頻繁的數(shù)據(jù),可以考慮使用設(shè)備代替文件系統(tǒng)。這里簡(jiǎn)要講述下文件系統(tǒng)與設(shè)備的對(duì)比:使用設(shè)備的優(yōu)點(diǎn)有:數(shù)據(jù)可以直接讀寫,不需要經(jīng)過操作系統(tǒng)級(jí)的緩存,節(jié)省了內(nèi)存資源,避免了內(nèi)存資源爭(zhēng)用。避免了文件系統(tǒng)級(jí)的開銷,比如文件系統(tǒng)需要超級(jí)塊、I-node 等。避免了操作系統(tǒng)的 cache 預(yù)讀功能,減少了 I/O 請(qǐng)求。使用設(shè)備的缺點(diǎn)是:數(shù)據(jù)管理、空間管理不靈活,需要很專業(yè)的人來操作。其實(shí)設(shè)備的優(yōu)點(diǎn)就是文件系統(tǒng)的缺點(diǎn),反之也是如此,這就需要做出合理的規(guī)劃和衡量,根據(jù)應(yīng)用的需求,做出對(duì)應(yīng)的策略。下面接著介紹對(duì)磁盤 IO 的評(píng)估標(biāo)準(zhǔn)。3.1 sar -d 命令組合通過“sar d”組合,可以對(duì)系統(tǒng)的磁盤 IO
26、 做一個(gè)基本的統(tǒng)計(jì),請(qǐng)看下面的一個(gè)輸出:rootwebserver # sar -d 2 3Linux 2.6.9-42.ELsmp(webserver)11/30/2008_i686_(8CPU)11:09:33PMDEVtpsrd_sec/swr_sec/savgrq-szavgqu-szawaitsvctm%util11:09:35PMdev8-00.000.000.000.000.000.000.000.0011:09:35PMDEVtpsrd_sec/swr_sec/savgrq-szavgqu-szawaitsvctm%util11:09:37PMdev8-01.000.0012.
27、0012.000.000.000.000.0011:09:37PMDEVtpsrd_sec/swr_sec/savgrq-szavgqu-szawaitsvctm%util11:09:39 PMdev8-01.990.0047.7624.000.000.500.250.05Average:DEVtpsrd_sec/swr_sec/savgrq-szavgqu-szawaitsvctm%utilAverage:dev8-01.000.0019.9720.000.000.330.170.02對(duì)上面每項(xiàng)的輸出解釋如下:DEV 表示磁盤設(shè)備名稱。tps 表示每秒到物理磁盤的傳送數(shù),也就是每秒的 I/O
28、 流量。一個(gè)傳送就是一個(gè) I/O 請(qǐng)求,多個(gè)邏輯請(qǐng)求可以被合并為一個(gè)物理 I/O 請(qǐng)求。rd_sec/s 表示每秒從設(shè)備的扇區(qū)數(shù)(1 扇區(qū)=512 字節(jié))。wr_sec/s 表示每秒寫入設(shè)備的扇區(qū)數(shù)目。avgrq-sz 表示平均每次設(shè)備 I/O 操作的數(shù)據(jù)大小(以扇區(qū)為)。avgqu-sz 表示平均 I/O 隊(duì)列長(zhǎng)度。await 表示平均每次設(shè)備 I/O 操作的等待時(shí)間(以毫秒為)。svctm 表示平均每次設(shè)備 I/O 操作的服務(wù)時(shí)間(以毫秒為)。%util 表示一秒中有百分之幾的時(shí)間用于 I/O 操作。Linux 中 I/O 請(qǐng)求系統(tǒng)與現(xiàn)實(shí)生活中超市購物排隊(duì)系統(tǒng)有很多類似的地方,通過對(duì)超市購
29、物排隊(duì)系統(tǒng)的理解,可以很快掌握 linux 中 I/O 運(yùn)行機(jī)制。比如:avgrq-sz 類似與超市排隊(duì)中每人所買東西的多少。avgqu-sz 類似與超市排隊(duì)中時(shí)間內(nèi)平均排隊(duì)的人數(shù)。await 類似與超市排隊(duì)中每人的等待時(shí)間。svctm 類似與超市排隊(duì)中收銀員的收款速度。%util 類似與超市收銀臺(tái)前有人排隊(duì)的時(shí)間比例。對(duì)以磁盤 IO 性能,一般有如下評(píng)判標(biāo)準(zhǔn):正常情況下 svctm 應(yīng)該是小于 await 值的,而 svctm 的大小和磁盤性能有關(guān),CPU、內(nèi)存的負(fù)荷也會(huì)對(duì)svctm 值造成影響,過多的請(qǐng)求也會(huì)間接的導(dǎo)致 svctm 值的增加。await 值的大小一般取決與 svctm 的值
30、和 I/O 隊(duì)列長(zhǎng)度以及 I/O 請(qǐng)求模式,如果 svctm 的值與 await 很接近,表示幾乎沒有 I/O 等待,磁盤性能很好,如果 await 的值遠(yuǎn)高于 svctm 的值,則表示 I/O 隊(duì)列等待太長(zhǎng),系統(tǒng)上運(yùn)行的應(yīng)用程序?qū)⒆兟藭r(shí)可以通過更換更快的硬盤來解決問題。%util 項(xiàng)的值也是衡量磁盤 I/O 的一個(gè)重要指標(biāo),如果%util 接近 100%,表示磁盤產(chǎn)生的 I/O 請(qǐng)求太多,I/O 系統(tǒng)已經(jīng)滿負(fù)荷的在工作,該磁盤可能存在瓶頸。長(zhǎng)期下去,勢(shì)必影響系統(tǒng)的性能,可以通過優(yōu)化程序或者通過更換更高、更快的磁盤來解決此問題。3.2 iosd 命令組合通過“iosd”命令組合也可以查看系
31、統(tǒng)磁盤的使用狀況,請(qǐng)看如下輸出:rootwebserver #ios-d23Linux 2.6.9-42.ELsmp(webserver)12/01/2008_i686_(8CPU)Device:tpsBlk_read/sBlk_wrtn/sBlk_readBlk_wrtnsda1.872.58114.126479462286537372Device:tpsBlk_read/sBlk_wrtn/sBlk_readBlk_wrtnsda0.000.000.0000Device:tpsBlk_read/sBlk_wrtn/sBlk_readBlk_wrtnsda1.000.0012.00024對(duì)上
32、面每項(xiàng)的輸出解釋如下:Blk_read/s 表示每秒的數(shù)據(jù)塊數(shù)。Blk_wrtn/s 表示每秒寫入的數(shù)據(jù)塊數(shù)。Blk_read 表示的所有塊數(shù)Blk_wrtn 表示寫入的所有塊數(shù)。這里需要注意的一點(diǎn)是:上面輸出的第一項(xiàng)是系統(tǒng)從啟動(dòng)以來到統(tǒng)計(jì)時(shí)的所有傳輸信息,從第二次輸出的數(shù)據(jù)才代表在檢測(cè)的時(shí)間段內(nèi)系統(tǒng)的傳輸值。可以通過 Blk_read/s 和 Blk_wrtn/s 的值對(duì)磁盤的讀寫性能有一個(gè)基本的了解,如果 Blk_wrtn/s 值很大,表示磁盤的寫操作很頻繁,可以考慮優(yōu)化磁盤或者優(yōu)化程序,如果 Blk_read/s 值很大,表示磁盤直接讀取操作很多,可以將的數(shù)據(jù)放入內(nèi)存中進(jìn)行操作。對(duì)于這兩
33、個(gè)選項(xiàng)的值沒有一個(gè)固定的大小,根據(jù)系統(tǒng)應(yīng)用的不同,會(huì)有不同的值,但是有一個(gè)規(guī)則還是可以遵循的:長(zhǎng)期的、超大的數(shù)據(jù)讀寫,肯定是不正常的,這種情況一定會(huì)影響系統(tǒng)性能。“iosx”組合還提供了對(duì)每個(gè)磁盤的單獨(dú)統(tǒng)計(jì),如果不指定磁盤,默認(rèn)是對(duì)所有磁盤進(jìn)行統(tǒng)計(jì),請(qǐng)看下面的一個(gè)輸出:rootwebserver #ios-x /dev/sda2 3Linux 2.6.9-42.ELsmp(webserver)12/01/2008_i686_(8 CPU)avg-cpu:%user%nice %system %iowait%steal%idle2.450.000.300.240.0097.03Device: r
34、rqm/swrqm/sr/sw/srsec/swsec/savgrq-szavgqu-szawaitsvctm%utilsda0.0112.480.101.782.58114.0362.330.0738.391.300.24avg-cpu:%user%nice%system %iowait%steal%idle3.970.001.838.190.0086.14Device:rrqm/s wrqm/sr/sw/srsec/swsec/s avgrq-szavgqu-szawaitsvctm%utilsda0.00195.000.0018.000.001704.0094.670.042.500.1
35、10.20avg-cpu:%user%nice%system%iowait%steal%idle4.040.001.838.010.0086.18Device: rrqm/swrqm/sr/sw/srsec/swsec/s avgrq-szavgqu-szawaitsvctm%utilsda0.004.500.007.000.0092.0013.140.010.790.140.10這個(gè)輸出基本與“sar d”相同,需明的幾個(gè)選項(xiàng)的含義為:rrqm/s 表示每秒進(jìn)行 merged 的讀操作數(shù)目。wrqm/s 表示每秒進(jìn)行 merge 的寫操作數(shù)目。r/s 表示每秒完成讀 I/O 設(shè)備的次數(shù)。w/
36、s 表示每秒完成寫 I/O 設(shè)備的次數(shù)。rsec/s 表示每秒的扇區(qū)數(shù)。wsec/s 表示每秒寫入的扇區(qū)數(shù)。3.3 vmsd 組合通過“vmsd”組合也可以查看磁盤的統(tǒng)計(jì)數(shù)據(jù),情況下面的一個(gè)輸出:rootwebserver # vms-d 3 2|grep sdadisk- reads writes IOtotalmergedsectorsmstotalmergedsectorsmscursecsda239588 2928264818621044442 453867832387680 29541081218602558006179disk- reads writes IOtotalmerged
37、sectorsmstotalmergedsectorsmscursecsda239588 292826481862 1044442 453868032387690 295410908 18602558106179這個(gè)輸出顯示了磁盤的 reads、writes 和 IO 的使用狀況。3.4 本節(jié)小結(jié)上面主要講解了對(duì)磁盤 I/O 的性能評(píng)估,其實(shí)衡量磁盤 I/O 好壞是多方面的,有應(yīng)用程序本身的,也有硬件設(shè)計(jì)上的,還有系統(tǒng)自身配置等,要解決 I/O 的瓶頸,關(guān)鍵是要提高 I/O 子系統(tǒng)的執(zhí)行效率。例如,首要要從應(yīng)用程序上對(duì)磁盤讀寫進(jìn)行優(yōu)化,能夠放到內(nèi)存執(zhí)行的操作,盡量不要放到磁盤,同時(shí)對(duì)磁盤方式進(jìn)
38、行合理規(guī)劃,選擇適合自己的 RAID 存取方式,最后,在系統(tǒng)級(jí)別上,可以選擇適合自身應(yīng)用的文件系統(tǒng),必要時(shí)使用設(shè)備提高讀寫性能。4 網(wǎng)絡(luò)性能評(píng)估網(wǎng)絡(luò)性能的好壞直接影響應(yīng)用程序?qū)ν馓峁┓?wù)的穩(wěn)定性和可靠性,網(wǎng)絡(luò)性能,可以從以下幾個(gè)方面進(jìn)行管理和優(yōu)化。4.1 通過命令檢測(cè)網(wǎng)絡(luò)的連通性如果發(fā)現(xiàn)網(wǎng)絡(luò)反應(yīng) 緩慢,或者連接中斷,可以通過來測(cè)試網(wǎng)絡(luò)的連通情況,請(qǐng)看下面的一個(gè)輸出:rootwebserver #10.10.1.25410.10.1.254 (10.10.1.254) 56(84)bytes of data.64bytesfrom10.10.1.254:icmp_seq=0ttl=64time=
39、0.235ms64bytesfrom10.10.1.254:icmp_seq=1ttl=64time=0.164ms64bytesfrom10.10.1.254:icmp_seq=2ttl=64time=0.210ms64bytesfrom10.10.1.254:icmp_seq=3ttl=64time=0.178ms64bytesfrom10.10.1.254:icmp_seq=4ttl=64time=0.525ms64bytesfrom10.10.1.254:icmp_seq=5ttl=64time=0.571ms64bytesfrom10.10.1.254:icmp_seq=6ttl=6
40、4time=0.220ms 10.10.1.254sistics 7 packets transmitted,7 received, 0%packetloss, time6000msrtt min/avg/max/mdev =0.164/0.300/0.571/0.159 ms, pipe2在這個(gè)輸出中,time 值顯示了兩臺(tái)主機(jī)之間的網(wǎng)絡(luò)延時(shí)情況,如果此值很大,則表示網(wǎng)絡(luò)的延時(shí)很大,為毫秒。在這個(gè)輸出的最后,是對(duì)上面輸出信息的一個(gè)總結(jié),packet loss 表示網(wǎng)絡(luò)的丟包率,此值越小,表示網(wǎng)絡(luò)的質(zhì)量越高。4.2 通過 netsi 組合檢測(cè)網(wǎng)絡(luò)接口狀況nets命令提供了網(wǎng)絡(luò)接口的詳細(xì)信息,請(qǐng)
41、看下面的輸出:rootwebserver # nets-iKernelerface tableIface MTUMet RX-OKRX-ERR RX-DRP RX-OVRTX-OKTX-ERR TX-DRPTX-OVReth0150000000BMRUeth115000494902025000292358810000BMRUlo1643604190160100041901601000LRU對(duì)上面每項(xiàng)的輸出解釋如下:Iface 表示網(wǎng)絡(luò)設(shè)備的接口名稱。MTU 表示最大傳輸單元,字節(jié)。RX-OK/TX-OK 表示已經(jīng)準(zhǔn)確無誤的接收/發(fā)送了多少數(shù)據(jù)包。RX-ERR/TX-ERR 表示接收/發(fā)送數(shù)據(jù)包
42、時(shí)產(chǎn)生了多少錯(cuò)誤。RX-DRP/TX-DRP 表示接收/發(fā)送數(shù)據(jù)包時(shí)丟棄了多少數(shù)據(jù)包。RX-OVR/TX-OVR 表示由于誤差而遺失了多少數(shù)據(jù)包。表示接口標(biāo)記,其中:L:表示該接口是個(gè)回環(huán)設(shè)備。B:表示設(shè)置了廣播地址。M:表示接收所有數(shù)據(jù)包。R:表示接口正在運(yùn)行。U:表示接口處于活動(dòng)狀態(tài)。O:表示在該接口上禁用 arp。P:表示一個(gè)點(diǎn)到點(diǎn)的連接。正常情況下,RX-ERR/TX-ERR、RX-DRP/TX-DRP 和RX-OVR/TX-OVR 的值都應(yīng)該為 0,如果這幾個(gè)選項(xiàng)的值不為 0,并且很大,那么網(wǎng)絡(luò)質(zhì)量肯定有問題,網(wǎng)絡(luò)傳輸性能也一定會(huì)下降。當(dāng)網(wǎng)絡(luò)傳輸存在問題是,可以檢測(cè)網(wǎng)卡設(shè)備是否存在故
43、障,如果可能,可以升級(jí)為千兆網(wǎng)卡或者光纖網(wǎng)絡(luò),還可以檢查網(wǎng)絡(luò)部署環(huán)境是否合理。4.3 通過 netsr 組合檢測(cè)系統(tǒng)的路由表信息在網(wǎng)絡(luò)不通,或者網(wǎng)絡(luò)異常時(shí),首先想到的就是檢查系統(tǒng)的路由表信息,“netsr”的輸出結(jié)果與 route 命令的輸出完全相同,請(qǐng)看下面的一個(gè)實(shí)例:rootwebserver #nets-rKernel IP routing tableDestinationGatewayGenmaskFlagsMSSWindowirttIface10.10.1.0*255.255.255.0U000eth0192.168.200.0*255.255.255.0U000eth1169.25
44、4.0.0*255.255.0.0U000eth1default10.10.1.2540.0.0.0UG000eth0關(guān)于輸出中每項(xiàng)的具體含義,已經(jīng)面章節(jié)進(jìn)行過詳細(xì)介紹,這里不再多講,這里重點(diǎn)關(guān)注的是default 行對(duì)應(yīng)的值,default 項(xiàng)表示系統(tǒng)的默認(rèn)路由,對(duì)應(yīng)的網(wǎng)絡(luò)接口為 eth0。4.4 通過 sar n 組合顯示系統(tǒng)的網(wǎng)絡(luò)運(yùn)行狀態(tài)sar 提供四種不同的選項(xiàng)來顯示網(wǎng)絡(luò)統(tǒng)計(jì)信息,通過“-n”選項(xiàng)可以指定 4 個(gè)不同類型的開關(guān):DEV、EDEV、SOCK 和 FULL。DEV 顯示網(wǎng)絡(luò)接口信息,EDEV 顯示關(guān)于網(wǎng)絡(luò)錯(cuò)誤的統(tǒng)計(jì)數(shù)據(jù),SOCK 顯示套接字信息,F(xiàn)ULL顯示所有三個(gè)開關(guān)。請(qǐng)
45、看下面的一個(gè)輸出:rootwebserver # sar -n DEV 23Linux 2.6.9-42.ELsmp(webserver)12/01/2008_i686_(8CPU)02:22:31PMIFACErxpck/stxpck/srxkB/stxkB/srxcmp/stxcmp/srxmcst/s02:22:33PMlo31.3431.3437.5337.530.000.000.0002:22:33PMeth0199.50279.6017.29344.120.000.000.0002:22:33PMeth15.474.987.030.360.000.000.0002:22:33PMs
46、it00.000.000.000.000.000.000.0002:22:33PMIFACErxpck/stxpck/srxkB/stxkB/srxcmp/stxcmp/srxmcst/s02:22:35PMlo67.6667.6674.3474.340.000.000.0002:22:35PMeth0159.70222.3919.74217.160.000.000.0002:22:35PMeth13.484.480.440.510.000.000.0002:22:35PMsit00.000.000.000.000.000.000.0002:22:35PMIFACErxpck/stxpck/s
47、rxkB/stxkB/srxcmp/stxcmp/srxmcst/s02:22:37PMlo4.524.529.259.250.000.000.0002:22:37PMeth0102.51133.6720.67116.140.000.000.0002:22:37PMeth127.1467.342.4289.260.000.000.0002:22:37PMsit00.000.000.000.000.000.000.00Average:IFACErxpck/stxpck/srxkB/stxkB/srxcmp/stxcmp/srxmcst/sAverage:lo34.6134.6140.4840.4
48、80.000.000.00Average:eth0154.08212.1519.23226.170.000.000.00Average:eth111.9825.463.3029.850.000.000.00Average:sit00.000.000.000.000.000.000.00對(duì)上面每項(xiàng)的輸出解釋如下:IFACE 表示網(wǎng)絡(luò)接口設(shè)備。rxpck/s 表示每秒鐘接收的數(shù)據(jù)包大小。txpck/s 表示每秒鐘發(fā)送的數(shù)據(jù)包大小。rxkB/s 表示每秒鐘接收的字節(jié)數(shù)。txkB/s 表示每秒鐘發(fā)送的字節(jié)數(shù)。rxcmp/s 表示每秒鐘接收的壓縮數(shù)據(jù)包。txcmp/s 表示每秒鐘發(fā)送的壓縮數(shù)據(jù)包。rxm
49、cst/s 表示每秒鐘接收的多播數(shù)據(jù)包。通過“sar n”的輸出,可以清楚的顯示網(wǎng)絡(luò)接口發(fā)送、接收數(shù)據(jù)的統(tǒng)計(jì)信息。此外還可以通過“sar -nEDEV 2 3”來統(tǒng)計(jì)網(wǎng)絡(luò)錯(cuò)誤信息等。4.5 小結(jié)本節(jié)通過幾個(gè)常用的網(wǎng)絡(luò)命令介紹了對(duì)網(wǎng)絡(luò)性能的評(píng)估,事實(shí)上,網(wǎng)絡(luò)問題是簡(jiǎn)單而且容易處理的,只要根據(jù)上面給出令,一般都能迅速定位問題。解決問題的方法一般是增加網(wǎng)絡(luò)帶寬,或者優(yōu)化網(wǎng)絡(luò)部署環(huán)境。除了上面介紹的幾個(gè)命令外,排查網(wǎng)絡(luò)問題經(jīng)常用到令還有 traceroute,主要用于數(shù)據(jù)包的傳輸路徑,還有 nslookup 命令,主要用于判斷 DNS信息。CPU 利用率:Linux 以及大多數(shù)基于 UNIX 的操作系
50、統(tǒng)都提供了一條命令來顯示系統(tǒng)的平均負(fù)載(load average):具體的講,平均負(fù)載代表了在 1min,5min 和 15min 內(nèi)可以運(yùn)行的任務(wù)平均數(shù)。可運(yùn)行的任務(wù)包括當(dāng)前正在運(yùn)行的任務(wù)以及雖然可以運(yùn)行但正在等待某個(gè)處理器空閑的任務(wù)。我這里只有一個(gè) CPU,且 0.31, 0.46,0.21 均小于 1.00,這表明處理器仍擁有額外的空閑周期。同理如果有兩個(gè) CPU,且 load average均小于 2.00 的話,這同樣表明處理器擁有額外的空閑周期。然后負(fù)載平均值單獨(dú)并不能說明所有問題。為了更深入地探究處理器的使用情況,下面介紹幾種工具可以提供許多關(guān)于 CPU 利用的不同理解:1) v
51、ms一個(gè)實(shí)時(shí)性能監(jiān)視工具。該工具提供了有助于發(fā)現(xiàn)系統(tǒng)異常活動(dòng)的數(shù)據(jù)。上面令是每 1s 輸出 vms的信息,共 10 次,具體說明如下:Procs:提供了在生成時(shí)正在運(yùn)行的進(jìn)程數(shù)目(r)以及被阻塞的進(jìn)程數(shù)目(b)Memory: 提供了換出內(nèi)存(swpd),空閑內(nèi)存(free),IO 數(shù)據(jù)結(jié)構(gòu)的緩存區(qū)緩存(buff)以及從磁盤文件的內(nèi)存緩存(cache)的容量。為 KB.Swap:提供了從磁盤上換入內(nèi)存容量(si)以及換出到磁盤上的內(nèi)存量(so),為 KB/s.so 反應(yīng)了當(dāng)數(shù)據(jù)被換出至交換區(qū)時(shí) kswapd 的情況,而 si 則反映了當(dāng)頁面被換回到物理內(nèi)存時(shí)發(fā)生頁面錯(cuò)誤的情況。io:提供了從設(shè)備
52、讀入的塊數(shù)(bi)以及寫出到設(shè)備上的塊數(shù)(bo),System: 提供了每秒的中斷數(shù)目(in)和上下文切換數(shù)目(cs).為KB/s。Cpu:提供了用戶(us),系統(tǒng)(sy),真正空閑(id)以及等待 I/O 完成(wa)在 cpu 總時(shí)間中所占的百分比。2) top 與 gtop它可以顯示哪些進(jìn)程是活躍的以及哪些進(jìn)程消耗的處理時(shí)間或內(nèi)存最多。top 命令對(duì)于所有正在運(yùn)行的進(jìn)系統(tǒng)負(fù)載提供不斷更新的概覽信息。包括 cpu 負(fù)載,內(nèi)存使用以及每個(gè)進(jìn)程的內(nèi)存使用情況。默認(rèn)情況下,top 輸出經(jīng)常刷新,且把任務(wù)基于 CPU 占用時(shí)間的百分比排序。對(duì)圖詳細(xì)解釋如下:第一行:顯示正常運(yùn)行的時(shí)間,包括當(dāng)前時(shí)間
53、,系統(tǒng)上次重啟后已運(yùn)行的時(shí)間和當(dāng)前用戶數(shù)量以及 3 個(gè)用于表示在先前 1min,5min,15min 內(nèi)準(zhǔn)備運(yùn)行的平均處理器數(shù)目的平均負(fù)荷值。第二行:給出進(jìn)程的統(tǒng)計(jì)信息。包括正在運(yùn)行的進(jìn)程總數(shù)。具體還有正在運(yùn)行的,睡眠的,僵尸的和已停止進(jìn)程的數(shù)目。第三和四行:顯示各個(gè)的統(tǒng)計(jì)信息。包括用戶進(jìn)程,系統(tǒng)進(jìn)程,niced 進(jìn)程(優(yōu)先進(jìn)程)以及空閑進(jìn)程所占用的 cpu 的時(shí)間比。第五行提供內(nèi)存統(tǒng)計(jì)信息。包括內(nèi)存總量,已用內(nèi)存,空閑內(nèi)存,不同進(jìn)程共享的內(nèi)存以及緩存內(nèi)存。第六行顯示虛存或交換活動(dòng)的統(tǒng)計(jì)信息,包括交換空間總量,已經(jīng)使用的,空閑的和緩存空間大小。 具體到統(tǒng)計(jì)信息的每一行,看下邊:: 每個(gè)進(jìn)程的
54、ID;USER: 每個(gè)進(jìn)程所有者的用戶名; PR: 每個(gè)進(jìn)程的優(yōu)先級(jí)別;NI: 該進(jìn)程的優(yōu)先級(jí)值; VIRT: 虛擬內(nèi)存;RES: 常駐內(nèi)存; SHR: 共享內(nèi)存;%CPU: 該進(jìn)程自最近一次刷新以來所占用的 CPU 時(shí)間和總時(shí)間的百分比;%MEM: 內(nèi)存使用率,該進(jìn)程占用的物理內(nèi)存占總內(nèi)存的百分比;TIME: 該進(jìn)程自啟動(dòng)以來所占用的總 CPU 時(shí)間。如果進(jìn)入的是累計(jì)模式,那么該時(shí)間還包括這個(gè)進(jìn)程子進(jìn)程所占用的時(shí)間。且標(biāo)題會(huì)變成 CTIME;D: 該進(jìn)程令名稱,如果一行顯示不下,則會(huì)進(jìn)行截取。內(nèi)存中的進(jìn)程會(huì)有一個(gè)完整令行. 3)sar它收集包括 CPU 利用率,上下文切換和中斷速率,頁換入和
55、頁換出速率,共享內(nèi)存的使用情況,緩沖區(qū)使用情況以及網(wǎng)絡(luò)使用情況。它常常用于確定事件的時(shí)間,也可用于標(biāo)識(shí)特定的系統(tǒng)行為變化。Sar 可以使用更短的時(shí)間間隔或固定數(shù)目的時(shí)間間隔來輸出信息,sar 可以為所收集的許多數(shù)據(jù)點(diǎn)提供平均信息。sar 命令的選項(xiàng)很多,下面只列出常用選項(xiàng):-A:所有的總和。-u:CPU 利用率-v:進(jìn)程、I 節(jié)點(diǎn)、文件和鎖表狀態(tài)。-d:硬盤使用。-r:沒有使用的內(nèi)存頁面和硬盤塊。-g:串口 I/O 的情況。-b:緩沖區(qū)使用情況。-a:文件讀寫情況。-c:系統(tǒng)調(diào)用情況。-R:進(jìn)程的活動(dòng)情況。-y:終端設(shè)備活動(dòng)情況。-w:系統(tǒng)交換活動(dòng)。以上每 2 秒采樣一次,連續(xù)采樣 5 次,觀
56、察 CPU的使用情況,并將采樣結(jié)果以二進(jìn)制形式存入當(dāng)前目錄下的文件 zhou 中。如果要查看二進(jìn)制文件 zhou 中的內(nèi)容,則需鍵入如下 sar 命令:# sar -u -f zhou可見,sar 命令即能實(shí)時(shí)采樣,又能對(duì)以往的采樣結(jié)果進(jìn)行查詢。在顯示內(nèi)容包括:Cll 表示統(tǒng)計(jì)信息為所有 CPU 的平均值。%user 顯示在用戶級(jí)別(application)運(yùn)行使用 CPU 總時(shí)間的百分比。%nice 顯示在用戶級(jí)別,用于 nice 操作,所占用 CPU 總時(shí)間的百分比。%system 在級(jí)別(kernel)運(yùn)行所使用 CPU 總時(shí)間的百分比。%iowait 顯示用于等待 I/O 操作占用 C
57、PU 總時(shí)間的百分比。%steal 管理程序(hypervisor)為另一個(gè)虛擬進(jìn)程提供服務(wù)而等待虛擬 CPU 的百分比。%idle 顯示 CPU 空閑時(shí)間占用 CPU 總時(shí)間的百分比。內(nèi)存利用率:1)/proc/meminfo 與/proc/slabinfo這兩個(gè)文件可以捕獲物理內(nèi)存的狀況。要理解內(nèi)核內(nèi)存使用的情況,可以查看/proc/slabinfo 文件。MemTotal: 所有可用 RAM 大小(即物理內(nèi)存減去一些預(yù)留位和內(nèi)核的二進(jìn)制代碼大小)MemFree: LowFree 與 HighFree 的總和,被系統(tǒng)留著未使用的內(nèi)存Buffers: 用來給文件做緩沖大小Cached: 被高
58、速緩沖器(cache memory)用的內(nèi)存的大小(等于 diskcache minus SwapCache)SwapCached:被高速緩沖器(cache memory)用的交換空間的大小已經(jīng)被交換出來的內(nèi)存,但仍然被存放在 swapfile 中。用來在需要的時(shí)候很快的被替換而不需要再次打開 I/O 端口。Active: 在活躍使用中的緩沖或高速緩沖器頁面文件的大小,除非非常必要否則不會(huì)被移作他用.Inactive: 在不經(jīng)常使用中的緩沖或高速緩沖器頁面文件的大小,可能被用于其他途徑. HighTotal:HighFree: 該區(qū)域不是直接到內(nèi)核空間。內(nèi)核必須使用不同LowTotal:法使用
59、該段內(nèi)存。LowFree: 低位可以達(dá)到內(nèi)存一樣的作用,而且它還能夠被內(nèi)核用來一些自己的數(shù)據(jù)結(jié)構(gòu)。SwapTotal: 交換空間的總大小 SwapFree: 未被使用交換空間的大小 Dirty: 等待被寫回到磁盤的內(nèi)存大小。Writeback: 正在被寫回到磁盤的內(nèi)存大小。AnonPages:未頁的內(nèi)存大小Mapped: 設(shè)備和文件等的大小。Slab: 內(nèi)核數(shù)據(jù)結(jié)構(gòu)緩存的大小,可以減少申請(qǐng)和SReclaimable:可收回 Slab 的大小SUnreclaim:不可收回 Slab 的大小(SUnreclaim+SReclaimableSlab)PageTables:管理內(nèi)存分頁頁面的索引表的大
60、小。 NFS_Unstable:不穩(wěn)定頁表的大小 VmallocTotal: 可以vmalloc 虛擬內(nèi)存大小VmallocUsed: 已經(jīng)被使用的虛擬內(nèi)存大小。內(nèi)存帶來的消耗。這是其中的部分截圖:第一列:內(nèi)核數(shù)據(jù)結(jié)構(gòu)的名稱。第二列:活躍的第三列:總數(shù)第四列:每個(gè)數(shù)據(jù)結(jié)構(gòu)占用大小第五列:至少擁有一個(gè)活動(dòng)對(duì)象的頁面數(shù)第六列:已經(jīng)分配頁面的總數(shù)第七列:每個(gè) slab 結(jié)構(gòu)所分配的頁面數(shù)2)ps獲取特定進(jìn)程中的內(nèi)存使用情況.ps 的參數(shù)非常多,-A 列出所有的行程-w 顯示加寬可以顯示較多的資訊-au 顯示較詳細(xì)的資訊-aux 顯示所有包含其他使用者的行程在此僅列出幾個(gè)常用的參數(shù)并大略介紹含義說明:
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 輿論宣傳面試題及答案
- 教師資格筆試常見問題試題及答案
- 知識(shí)框架搭建公共營養(yǎng)師試題及答案
- 網(wǎng)絡(luò)規(guī)劃設(shè)計(jì)師復(fù)習(xí)驗(yàn)證試題及答案
- 肥料效應(yīng)試驗(yàn)試題及答案
- 西醫(yī)臨床時(shí)事考點(diǎn)試題及答案
- 網(wǎng)絡(luò)設(shè)計(jì)師行業(yè)內(nèi)競(jìng)爭(zhēng)對(duì)手的分析及試題及答案
- 藥劑學(xué)與基礎(chǔ)醫(yī)學(xué)的結(jié)合研究試題及答案
- 系統(tǒng)架構(gòu)設(shè)計(jì)師考試項(xiàng)目的生命周期管理試題及答案
- 藥劑產(chǎn)品推廣效果試題及答案
- 合理用藥管理制度
- 紅十字會(huì)突發(fā)事件應(yīng)急預(yù)案
- GB 30254-2024高壓三相籠型異步電動(dòng)機(jī)能效限定值及能效等級(jí)
- 2024年保密知識(shí)測(cè)試試題帶答案(考試直接用)
- 少兒編程培訓(xùn)機(jī)構(gòu)規(guī)章制度
- 重大事故隱患判定標(biāo)準(zhǔn)與相關(guān)事故案例培訓(xùn)課件
- 2024-2030年下一代測(cè)序(NGS)行業(yè)市場(chǎng)現(xiàn)狀供需分析及重點(diǎn)企業(yè)投資評(píng)估規(guī)劃分析研究分析報(bào)告
- GA 2108-2023警鞋禮服男皮鞋
- 四川省樂山市夾江縣2023-2024學(xué)年八年級(jí)下學(xué)期期末數(shù)學(xué)試題
- 2024版《供電營業(yè)規(guī)則》考試復(fù)習(xí)題庫大全-上(選擇、判斷題)
- 消化內(nèi)科疾病臨床路徑
評(píng)論
0/150
提交評(píng)論