qileilove

          blog已經(jīng)轉(zhuǎn)移至github,大家請(qǐng)?jiān)L問(wèn) http://qaseven.github.io/

          LoadRunner中進(jìn)程運(yùn)行和線程運(yùn)行區(qū)別

            LoadRunner controller將使用驅(qū)動(dòng)程序mmdrv運(yùn)行Vuser。用戶可以在controller的run-time setting中選擇Vuser的運(yùn)行方式, 是多進(jìn)程方式or多線程方式。

            如果選擇以線程方式來(lái)運(yùn)行虛擬用戶:

            在場(chǎng)景設(shè)置時(shí),“是單行腳本,還是多行腳本”會(huì)決定系統(tǒng)啟動(dòng)的進(jìn)程數(shù)的多少:假設(shè)并發(fā)用戶設(shè)置為30,如果是單行30個(gè)用戶,系統(tǒng)只需啟動(dòng)一個(gè)進(jìn)程;假設(shè)并發(fā)用戶設(shè)置為30,如果是多行,30行,每行一個(gè)用戶,系統(tǒng)就需要啟動(dòng)30個(gè)進(jìn)程;

            如果選擇以進(jìn)程方式來(lái)運(yùn)行虛擬用戶:

            那么無(wú)論腳本在場(chǎng)景組中怎么設(shè)置,是單行多用戶還是多行少用戶方式,系統(tǒng)需要啟動(dòng)的進(jìn)程數(shù)是一定的,就是并發(fā)用戶的總數(shù);

            進(jìn)程方式和線程方式的優(yōu)缺點(diǎn):

            如果選擇按照進(jìn)程方式運(yùn)行,每個(gè)用戶都將啟動(dòng)一個(gè)mmdrv進(jìn)程,多個(gè)mmdrv進(jìn)程會(huì)占用大量?jī)?nèi)存及其他系統(tǒng)資源,這就限制了可以在任一負(fù)載生成器上運(yùn)行的并發(fā)用戶數(shù)的數(shù)量,因?yàn)樨?fù)載機(jī)的資源(內(nèi)存及其他系統(tǒng)資源)是有限的。如果選擇按照線程方式運(yùn)行,在默認(rèn)情況下,controller為每50個(gè)用戶僅啟動(dòng)一個(gè)mmdrv進(jìn)程,而每個(gè)用戶都按線程方式來(lái)運(yùn)行,這些線程用戶將共享父進(jìn)程的內(nèi)存段,這就節(jié)省了大量?jī)?nèi)存空間,從而可以在一個(gè)負(fù)載生成器上運(yùn)行更多的用戶。(如果選擇線程方式來(lái)運(yùn)行用戶,每個(gè)進(jìn)程中會(huì)多出幾個(gè)線程,例如是53個(gè),多出來(lái)的進(jìn)程可能是用于維護(hù)進(jìn)程之間的運(yùn)行的)選擇線程方式雖然可以減少啟動(dòng)的mmdrv進(jìn)程數(shù),減少了內(nèi)存的占用,但是也容易出現(xiàn)一個(gè)問(wèn)題,例如,同一個(gè)測(cè)試場(chǎng)景,用線程并發(fā)就會(huì)出現(xiàn)超時(shí)失敗或報(bào)錯(cuò),而用進(jìn)程并發(fā)就沒(méi)錯(cuò)。為什么呢?因?yàn)榫€程的資源是從進(jìn)程資源中分配出來(lái)的,因此同一個(gè)進(jìn)程中的多個(gè)線程會(huì)有共享的內(nèi)存空間,假設(shè)a線程要用資源就必須等待b線程釋放,而b線程也在等待其他資源釋放才能繼續(xù),這樣就會(huì)出現(xiàn)這個(gè)問(wèn)題。

            系統(tǒng)需要啟動(dòng)的mmdrv進(jìn)程數(shù)與哪些因素有關(guān):

            與在controller 的運(yùn)行時(shí)設(shè)置中選擇的是進(jìn)程方式or線程方式來(lái)運(yùn)行虛擬用戶有關(guān)進(jìn)程方式:無(wú)論是單行or多行腳本,需要啟動(dòng)的進(jìn)程數(shù)就是并發(fā)用戶數(shù);線程方式:假設(shè)是單行腳本,每50個(gè)用戶才啟動(dòng)一個(gè)進(jìn)程;多行腳本,有幾行(每行<50人)就啟動(dòng)幾個(gè)進(jìn)程,而不是每個(gè)用戶啟動(dòng)一個(gè)進(jìn)程。如果選擇了線程方式,需啟動(dòng)的進(jìn)程數(shù),進(jìn)一步還與腳本是單行還是多行有關(guān)單行腳本,多用戶,假設(shè)少于50,只需啟動(dòng)一個(gè)進(jìn)程,100個(gè)用戶,只需啟動(dòng)2個(gè)進(jìn)程,依此類推;多行腳本,即使每行一個(gè)用戶,也需要啟動(dòng)一個(gè)進(jìn)程,多一行就需要多啟動(dòng)一個(gè)進(jìn)程;不是每個(gè)用戶啟動(dòng)一個(gè)進(jìn)程,有幾行(每行<50人)就需要啟動(dòng)幾個(gè)進(jìn)程。在啟動(dòng)了IP欺騙功能后,所需啟動(dòng)的進(jìn)程數(shù),還與選擇的是按進(jìn)程還是按線程來(lái)分配IP地址有關(guān)按進(jìn)程分IP:每個(gè)ip(負(fù)載生成器)就需要多啟動(dòng)一個(gè)進(jìn)程; 按線程分IP:每個(gè)ip(負(fù)載生成器)不需要多啟動(dòng)一個(gè)進(jìn)程。

          posted on 2012-10-15 09:13 順其自然EVO 閱讀(375) 評(píng)論(0)  編輯  收藏 所屬分類: loadrunner性能測(cè)試

          <2012年10月>
          30123456
          78910111213
          14151617181920
          21222324252627
          28293031123
          45678910

          導(dǎo)航

          統(tǒng)計(jì)

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 民丰县| 景东| 潮州市| 密山市| 运城市| 同德县| 那坡县| 巴彦淖尔市| 竹溪县| 乾安县| 普陀区| 上饶县| 宣威市| 白朗县| 木里| 新宾| 延长县| 同德县| 兴仁县| 思茅市| 固始县| 宁明县| 廉江市| 赣榆县| 通渭县| 军事| 邵东县| 晋城| 马龙县| 北宁市| 思南县| 胶州市| 嘉峪关市| 韶山市| 澎湖县| 淮安市| 花垣县| 陕西省| 彰化县| 太仆寺旗| 沂源县|