轉(zhuǎn)自Andrew(http://andrew913.javaeye.com/blog/431259)
在我們介紹Linux系統(tǒng)的各 種調(diào)優(yōu)參數(shù)和性能監(jiān)測(cè)工具之前,需要先討論一些關(guān)于性能調(diào)優(yōu)的參數(shù)。因?yàn)長(zhǎng)inux是一個(gè)開(kāi)源操作系統(tǒng),所以又大量可用的性能監(jiān)測(cè)工具。對(duì)這些工具的選擇 取決于你的個(gè)人喜好和對(duì)數(shù)據(jù)細(xì)節(jié)的要求。所有的性能監(jiān)測(cè)工具都是按照同樣的規(guī)則來(lái)工作的,所以無(wú)論你使用哪種監(jiān)測(cè)工具都需要理解這些參數(shù)。下面列出了一些 重要的參數(shù),有效的理解它們是很有用處的。
(1)處理器參數(shù)
CPU utilization
這是一個(gè)很簡(jiǎn)單的參數(shù),它直觀的描述了每個(gè)CPU的利用率。在xSeries架構(gòu)中,如果CPU的利用率長(zhǎng)時(shí)間的超過(guò)80%,就可能是出現(xiàn)了處理器的瓶頸。
Runable processes
這個(gè)值描述了正在準(zhǔn)備被執(zhí)行的進(jìn)程,在一個(gè)持續(xù)時(shí)間里這個(gè)值不應(yīng)該超過(guò)物理CPU數(shù)量的10倍,否則CPU方面就可能存在瓶頸。
Blocked
描述了那些因?yàn)榈却齀/O操作結(jié)束而不能被執(zhí)行的進(jìn)程,Blocked可能指出你正面臨I/O瓶頸。
User time
描述了處理用戶(hù)進(jìn)程的百分比,包括nice time。如果User time的值很高,說(shuō)明系統(tǒng)性能用在處理實(shí)際的工作。
System time
描述了CPU花費(fèi)在處理內(nèi)核操作包括IRQ和軟件中斷上面的百分比。如果system time很高說(shuō)明系統(tǒng)可能存在網(wǎng)絡(luò)或者驅(qū)動(dòng)堆棧方面的瓶頸。一個(gè)系統(tǒng)通常只花費(fèi)很少的時(shí)間去處理內(nèi)核的操作。
Idle time
描述了CPU空閑的百分比。
Nice time
描述了CPU花費(fèi)在處理re-nicing進(jìn)程的百分比。
Context switch
系統(tǒng)中線(xiàn)程之間進(jìn)行交換的數(shù)量。
Waiting
CPU花費(fèi)在等待I/O操作上的總時(shí)間,與blocked相似,一個(gè)系統(tǒng)不應(yīng)該花費(fèi)太多的時(shí)間在等待I/O操作上,否則你應(yīng)該進(jìn)一步檢測(cè)I/O子系統(tǒng)是否存在瓶頸。
Interrupts
Interrupts 值包括硬Interrupts和軟Interrupts,硬Interrupts會(huì)對(duì)系統(tǒng)性能帶來(lái)更多的不利影響。高的Interrupts值指出系統(tǒng)可 能存在一個(gè)軟件的瓶頸,可能是內(nèi)核或者驅(qū)動(dòng)程序。注意Interrupts值中包括CPU時(shí)鐘導(dǎo)致的中斷(現(xiàn)代的xServer系統(tǒng)每秒1000個(gè) Interrupts值)。
(2)內(nèi)存參數(shù)
Free memory
相比其他操作系統(tǒng),Linux空閑內(nèi)存的值不應(yīng)該做為一個(gè)性能參考的重要指標(biāo),因?yàn)榫拖裎覀冎疤岬竭^(guò)的,Linux內(nèi)核會(huì)分配大量沒(méi)有被使用的內(nèi)存作為文件系統(tǒng)的緩存,所以這個(gè)值通常都比較小。
Swap usage
這 個(gè)值描述了已經(jīng)被使用的swap空間。Swap usage只表示了Linux管理內(nèi)存的有效性。對(duì)識(shí)別內(nèi)存瓶頸來(lái)說(shuō),Swap In/Out才是一個(gè)比較又意義的依據(jù),如果Swap In/Out的值長(zhǎng)期保持在每秒200到300個(gè)頁(yè)面通常就表示系統(tǒng)可能存在內(nèi)存的瓶頸。
Buffer and cache
這 個(gè)值描述了為文件系統(tǒng)和塊設(shè)備分配的緩存。注意在Red Hat Enterprise Linux 3和更早一些的版本中,大部分空閑內(nèi)存會(huì)被分配作為緩存使用。在Red Hat Enterprise Linux 4以后的版本中,你可以通過(guò)修改/proc/sys/vm中的page_cache_tuning來(lái)調(diào)整空閑內(nèi)存中作為緩存的數(shù)量。
Slabs
描述了內(nèi)核使用的內(nèi)存空間,注意內(nèi)核的頁(yè)面是不能被交換到磁盤(pán)上的。
Active versus inactive memory
提供了關(guān)于系統(tǒng)內(nèi)存的active內(nèi)存信息,Inactive內(nèi)存是被kswapd守護(hù)進(jìn)程交換到磁盤(pán)上的空間。
(3)網(wǎng)絡(luò)參數(shù)
Packets received and sent
這個(gè)參數(shù)表示了一個(gè)指定網(wǎng)卡接收和發(fā)送的數(shù)據(jù)包的數(shù)量。
Bytes received and sent
這個(gè)參數(shù)表示了一個(gè)指定網(wǎng)卡接收和發(fā)送的數(shù)據(jù)包的字節(jié)數(shù)。
Collisions per second
這個(gè)值提供了發(fā)生在指定網(wǎng)卡上的網(wǎng)絡(luò)沖突的數(shù)量。持續(xù)的出現(xiàn)這個(gè)值代表在網(wǎng)絡(luò)架構(gòu)上出現(xiàn)了瓶頸,而不是在服務(wù)器端出現(xiàn)的問(wèn)題。在正常配置的網(wǎng)絡(luò)中沖突是非常少見(jiàn)的,除非用戶(hù)的網(wǎng)絡(luò)環(huán)境都是由hub組成。
Packets dropped
這個(gè)值表示了被內(nèi)核丟掉的數(shù)據(jù)包數(shù)量,可能是因?yàn)榉阑饓蛘呤蔷W(wǎng)絡(luò)緩存的缺乏。
Overruns
Overruns表達(dá)了超出網(wǎng)絡(luò)接口緩存的次數(shù),這個(gè)參數(shù)應(yīng)該和packets dropped值聯(lián)系到一起來(lái)判斷是否存在在網(wǎng)絡(luò)緩存或者網(wǎng)絡(luò)隊(duì)列過(guò)長(zhǎng)方面的瓶頸。
Errors
這個(gè)值記錄了標(biāo)志為失敗的幀的數(shù)量。這個(gè)可能由錯(cuò)誤的網(wǎng)絡(luò)配置或者部分網(wǎng)線(xiàn)損壞導(dǎo)致,在銅口千兆以太網(wǎng)環(huán)境中部分網(wǎng)線(xiàn)的損害是影響性能的一個(gè)重要因素。
(4)塊設(shè)備參數(shù)
Iowait
CPU等待I/O操作所花費(fèi)的時(shí)間。這個(gè)值持續(xù)很高通常可能是I/O瓶頸所導(dǎo)致的。
Average queue length
I/O請(qǐng)求的數(shù)量,通常一個(gè)磁盤(pán)隊(duì)列值為2到3為最佳情況,更高的值說(shuō)明系統(tǒng)可能存在I/O瓶頸。
Average wait
響應(yīng)一個(gè)I/O操作的平均時(shí)間。Average wait包括實(shí)際I/O操作的時(shí)間和在I/O隊(duì)列里等待的時(shí)間。
Transfers per second
描述每秒執(zhí)行多少次I/O操作(包括讀和寫(xiě))。Transfers per second的值與kBytes per second結(jié)合起來(lái)可以幫助你估計(jì)系統(tǒng)的平均傳輸塊大小,這個(gè)傳輸塊大小通常和磁盤(pán)子系統(tǒng)的條帶化大小相符合可以獲得最好的性能。
Blocks read/write per second
這個(gè)值表達(dá)了每秒讀寫(xiě)的blocks數(shù)量,在2.6內(nèi)核中blocks是1024bytes,在早些的內(nèi)核版本中blocks可以是不同的大小,從512bytes到4kb。
Kilobytes per second read/write
按照kb為單位表示讀寫(xiě)塊設(shè)備的實(shí)際數(shù)據(jù)的數(shù)量。
轉(zhuǎn)自:
posted on 2010-01-11 22:07
chatler 閱讀(392)
評(píng)論(0) 編輯 收藏 引用 所屬分類(lèi):
Linux_SysAdmin