Loadrunner | 進程方式和線程方式運行的區別

    Loadrunner執行場景時可以在Controller的Run-time Setting中選擇Vuser的運行方式:進程方式 或 線程方式。那應該如何選擇呢?很多小夥伴就會感到比較困惑,下面帶大家瞭解下這兩種方式的區別。

 1 

選擇進程模式模擬用戶執行場景

    在Controller中使用驅動程序(如mdrv.exe、r3vuser.exe)運行vuser。如果按進程運行每個Vuser,對於每個Vuser實例都將啓動一個mdrv進程,都將反覆啓動同一驅動程序並將其加載到內存中,從而會佔用大量的RAM(隨機存儲器)及其他系統資源。這就限制了可以在任一負載生成器上運行的Vuser數量。


 2 

選擇線程模式模擬用戶執行場景

    如果按線程運行Vuser,Controller爲每50個Vuser啓動一個mdrv進程,每個Vuser都按線程運行,這些線程Vuser將共享父驅動進程的內存段。這就消除了多次重新加載驅動程序/進程的需要,節省了大量內存空間,從而可以在一個負載生成器上運行更多的Vuser。

    當然,任何選擇都是有兩面性的。選擇線程方式雖然可以減少啓動的mdrv進程數,減少了內存的佔用,但是也容易出現一個問題,例如,同一個測試場景,用線程併發就會出現超時失敗或報錯,而用進程併發就沒錯。爲什麼呢?因爲線程的資源是從進程資源中分配出來的,因此同一個進程中的多個線程會有共享的內存空間,假設a線程要用資源就必須等待b線程釋放,而b線程也在等待其他資源釋放才能繼續,這樣就會出現這個問題。


總結:

    所以在執行場景時,我們可以根據自己的系統特點和環境需要,選擇適合自己的模式來執行測試。如果是線程安全的協議,在一個組裏併發多個Vuser,可以使用線程的方式來執行,這可以減少系統的開銷。 如果不是線程安全的協議,我們需要開多個進程來處理Vuser,同時也需要足夠的硬件來支撐系統的開銷。




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章