LoadRunner中进程运行和线程运行区别
LoadRunner中進(jìn)程運(yùn)行和線程運(yùn)行區(qū)別
發(fā)布時(shí)間: 2012-5-23 10:29 ?? 作者: 田志良 ?? 來(lái)源: 51Testing軟件測(cè)試網(wǎng)采編?
字體:? 小? 中? 大? | 上一篇 下一篇 | 打印? | 我要投稿? | 推薦標(biāo)簽: 性能測(cè)試 軟件測(cè)試 LoadRunner loadrunner 測(cè)試工具
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)程,依此類(lèi)推; 多行腳本,即使每行一個(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)程。
?
???? 那個(gè)就是在VuGen中的Run-Time下的Miscellaneous中可以進(jìn)行設(shè)置,就是為了說(shuō)明啟動(dòng)每個(gè)Vuser時(shí),用進(jìn)程還是線程。
?
單行腳本和多行腳本是不是單腳本和多腳本的意思,單腳本和多腳本就是你錄制好一個(gè)腳本之后保存好(假如名叫Test1),再錄制一個(gè)腳本(名叫Test2),你可以在Controller中進(jìn)行設(shè)置,可以運(yùn)行Test1這一個(gè)腳本(單腳本),也可以Text1和Text2同時(shí)運(yùn)行(多腳本),可以在Controller可以設(shè)置他們的運(yùn)行順序、條件等;
run-time-setting(F4)中,可以通過(guò)設(shè)置Run Logic,只執(zhí)行其中一個(gè)腳本。
轉(zhuǎn)載于:https://www.cnblogs.com/zhengah/p/4613783.html
總結(jié)
以上是生活随笔為你收集整理的LoadRunner中进程运行和线程运行区别的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 如何将Eclipse设置为中文简体
- 下一篇: 音视频常见播放器框架分析