CPU Utilization好理解,,就是CPU的利用率,,75%以上就比較高了(也有說(shuō)法是80%或者更高)。除了這個(gè)指標(biāo)外,,還要結(jié)合Load Average和Context Switch Rate來(lái)看,,有可能CPU高是因?yàn)楹髢蓚€(gè)指標(biāo)高導(dǎo)致的。
Load Average,,這個(gè)很難衡量,。網(wǎng)上搜了一圈,,還沒(méi)見(jiàn)到幾個(gè)合理的解釋。我100個(gè)并發(fā)用戶測(cè)試數(shù)來(lái)這兩個(gè)值是:77.534%,,6.108,,CPU利用率比較高,Load Average也好像有點(diǎn)高,。后來(lái)發(fā)現(xiàn)了如下兩片博文: 理解Load Average做好壓力測(cè)試 ,,“Load Average是 CPU的 Load,它所包含的信息不是 CPU的使用率狀況,,而是在一段時(shí)間內(nèi) CPU正在處理以及等待 CPU處理的進(jìn)程數(shù)之和的統(tǒng)計(jì)信息,,也就是 CPU使用隊(duì)列的長(zhǎng)度的統(tǒng)計(jì)信息。 ”,,基本解釋了multi-process,multi-thread程序的原理,。理解Linux處理器的負(fù)載均值(翻譯) ,簡(jiǎn)單說(shuō)起來(lái)就一句話:
Load Average < CPU個(gè)數(shù) * 核數(shù) *0.7
比如1個(gè)1核CPU,,Load Average < 1 * 1 * 0.7,;1個(gè)4核的CPU,Load Average必須 < 1 * 4 * 0.7 = 2.8,。
查看cpu的信息:grep 'model name' /proc/cpuinfo
Context Switch Rate,。就是Process(Thread)的切換,如果切換過(guò)多,,會(huì)讓CPU忙于切換,也會(huì)導(dǎo)致影響吞吐量,?!陡咝阅芊?wù)器架構(gòu) 》這篇文章的第2節(jié)就是說(shuō)的是這個(gè)問(wèn)題的。究竟多少算合適,?google了一大圈,,沒(méi)有一個(gè)確切的解釋。Context Switch大體上由兩個(gè)部分組成:中斷和進(jìn)程(包括線程)切換,,一次中斷(Interrupt)會(huì)引起一次切換,,進(jìn)程(線程)的創(chuàng)建、激活之類的也會(huì)引起一次切換,。CS的值也和TPS(Transaction Per Second)相關(guān)的,,假設(shè)每次調(diào)用會(huì)引起N次CS,那么就可以得出
Context Switch Rate = Interrupt Rate + TPS* N
CSR減掉IR,,就是進(jìn)程/線程的切換,,假如主進(jìn)程收到請(qǐng)求交給線程處理,線程處理完畢歸還給主進(jìn)程,,這里就是2次切換,。也可以用CSR,、IR、TPS的值代入公式中,,得出每次事物導(dǎo)致的切換數(shù),。因此,要降低CSR,,就必須在每個(gè)TPS引起的切換上下功夫,,只有N這個(gè)值降下去,CSR就能降低,,理想情況下N=0,,但是無(wú)論如何如果N >= 4,則要好好檢查檢查,。另外網(wǎng)上說(shuō)的CSR<5000,,我認(rèn)為標(biāo)準(zhǔn)不該如此單一。
其他信息:
這三個(gè)指標(biāo)在LoadRunner中可以監(jiān)控到,;另外,,在linux中,也可以用vmstat查看r(Load Arerage),,in(Interrupt)和cs(Context Switch)
#vmstat 1 5
procs --------------memory------------- ----swap-- ---io-- -system------cpu----
r b swpd free buff cache si so bi bo in cs us sy id wa 0 0 244644 29156 415720 2336484 0 0 1 49 2 1 1 0 98 0 0 0 244644 29140 415720 2336484 0 0 0 28 9 115 0 0 99 1 0 0 244644 29140 415720 2336484 0 0 0 24 62 256 0 0 100 0 0 0 244644 29140 415720 2336484 0 0 0 0 5 93 0 0 100 0 0 0 244644 29140 415720 2336484 0 0 0 0 58 255 0 0 100 0 Interrupt Rate包括內(nèi)核由于進(jìn)程的時(shí)間片中斷,。(在 Linux 2.6 中,系統(tǒng)時(shí)鐘每 1 毫秒中斷一次時(shí)鐘頻率,,用 HZ 宏表示,,定義為 1000,即每秒中斷 1000 次,。系統(tǒng)不一樣,,內(nèi)核不一樣配置100、250的都有,。)
內(nèi)核的時(shí)鐘頻率可以通過(guò)如下命令知道
cat /boot/config-`uname -r` | grep '^CONFIG_HZ='
CONFIG_HZ=100
每秒總的時(shí)鐘中斷數(shù)就是 = cpu個(gè)數(shù) * 核數(shù) * CONFIG_HZ
cat /proc/interrupts
CPU0 CPU1 CPU2 CPU3
LOC: 97574747 52361843 105207680 69447653 Local timer interrupts RES: 107368 257510 98635 186294 Rescheduling interrupts CAL: 14174 14206 14164 194 function call interrupts TLB: 1007949 853117 992546 591410 TLB shootdowns 可以查看中斷的類型以及次數(shù)
本文來(lái)自CSDN博客,,轉(zhuǎn)載請(qǐng)標(biāo)明出處:http://blog.csdn.net/marising/archive/2010/01/12/5182771.aspx
|
|
來(lái)自: 白雪~~~ > 《性能測(cè)試》