LoadRunner中进程运行和线程运行区别
LoadRunner中進程運行和線程運行區別
發布時間: 2012-5-23 10:29 ?? 作者: 田志良 ?? 來源: 51Testing軟件測試網采編?
字體:? 小? 中? 大? | 上一篇 下一篇 | 打印? | 我要投稿? | 推薦標簽: 性能測試 軟件測試 LoadRunner loadrunner 測試工具
LoadRunner controller將使用驅動程序mmdrv運行Vuser。用戶可以在controller的run-time setting中選擇Vuser的運行方式, 是多進程方式or多線程方式。
如果選擇以線程方式來運行虛擬用戶:
在場景設置時,“是單行腳本,還是多行腳本”會決定系統啟動的進程數的多少: 假設并發用戶設置為30,如果是單行30個用戶,系統只需啟動一個進程; 假設并發用戶設置為30,如果是多行,30行,每行一個用戶,系統就需要啟動30個進程;
如果選擇以進程方式來運行虛擬用戶:
那么無論腳本在場景組中怎么設置,是單行多用戶還是多行少用戶方式,系統需要啟動的進程數是一定的,就是并發用戶的總數;
進程方式和線程方式的優缺點:
如果選擇按照進程方式運行,每個用戶都將啟動一個mmdrv進程,多個mmdrv進程會占用大量內存及其他系統資源,這就限制了可以在任一負載生成器上 運行的并發用戶數的數量,因為負載機的資源(內存及其他系統資源)是有限的。 如果選擇按照線程方式運行,在默認情況下,controller為每50個用戶僅啟動一個mmdrv進程,而每個用戶都按線程方式來運行,這些線程用戶將 共享父進程的內存段,這就節省了大量內存空間,從而可以在一個負載生成器上運行更多的用戶。(如果選擇線程方式來運行用戶,每個進程中會多出幾個線程,例 如是53個,多出來的進程可能是用于維護進程之間的運行的) 選擇線程方式雖然可以減少啟動的mmdrv進程數,減少了內存的占用,但是也容易出現一個問題,例如,同一個測試場景,用線程并發就會出現超時失敗或報錯,而用進程并發就沒錯。為什么呢?因為線程的資源是從進程資源中分配出來的,因此同一個進程中的多個線程會有共享的內存空間,假設a線程要用資源就必須等待b線程釋放,而b線程也在等待其他資源釋放才能繼續,這樣就會出現這個問題。
系統需要啟動的mmdrv進程數與哪些因素有關:
與在controller 的運行時設置中選擇的是進程方式or線程方式來運行虛擬用戶有關 進程方式:無論是單行or多行腳本,需要啟動的進程數就是并發用戶數; 線程方式:假設是單行腳本,每50個用戶才啟動一個進程;多行腳本,有幾行(每行<50人)就啟動幾個進程,而不是每個用戶啟動一個進程。 如果選擇了線程方式,需啟動的進程數,進一步還與腳本是單行還是多行有關 單行腳本,多用戶,假設少于50,只需啟動一個進程,100個用戶,只需啟動2個進程,依此類推; 多行腳本,即使每行一個用戶,也需要啟動一個進程,多一行就需要多啟動一個進程;不是每個用戶啟動一個進程,有幾行(每行<50人)就需要啟動幾個 進程。 在啟動了IP欺騙功能后,所需啟動的進程數,還與選擇的是按進程還是按線程來分配IP地址有關 按進程分IP:每個ip(負載生成器)就需要多啟動一個進程; 按線程分IP:每個ip(負載生成器)不需要多啟動一個進程。
?
???? 那個就是在VuGen中的Run-Time下的Miscellaneous中可以進行設置,就是為了說明啟動每個Vuser時,用進程還是線程。
?
單行腳本和多行腳本是不是單腳本和多腳本的意思,單腳本和多腳本就是你錄制好一個腳本之后保存好(假如名叫Test1),再錄制一個腳本(名叫Test2),你可以在Controller中進行設置,可以運行Test1這一個腳本(單腳本),也可以Text1和Text2同時運行(多腳本),可以在Controller可以設置他們的運行順序、條件等;
run-time-setting(F4)中,可以通過設置Run Logic,只執行其中一個腳本。
轉載于:https://www.cnblogs.com/zhengah/p/4613783.html
總結
以上是生活随笔為你收集整理的LoadRunner中进程运行和线程运行区别的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 如何将Eclipse设置为中文简体
- 下一篇: 音视频常见播放器框架分析
