使用者可以在controller的run-time setting中選擇vuser的執行方式:多程序/多執行緒。
多程序和多執行緒方式的區別是:
controller將使用驅動程式mdrv執行vuser。如果按程序方式執行每個vuser,則對於每個vuser例項,都將啟動乙個mdrv程序。多個mdrv程序會占用大量記憶體及其他系統資源,這就限制了可以在任一負載生成器上執行的vuser的數量。如果選擇按執行緒方式執行,在預設情況下,controller為每50個vuser僅啟動乙個mdrv.exe程序,而每個vuser都按執行緒執行,這些執行緒vuser將共享父程序的記憶體段。這就節省了大量記憶體控制項,從而可以在乙個負載生成器上執行更多的vuser。
但是任何選擇都是有兩面性的。選擇執行緒方式執行vuser會帶來一些安全問題。因為執行緒的資源是從程序資源中分配出來的,因此同乙個程序中的多個執行緒會有共享的記憶體空間,這樣可能會引起多個執行緒的同步問題,排程不好,就會出問題,不如a執行緒要用的資源就必須等待b執行緒釋放,而b也在等待其他資源釋放才能繼續。這就會出現這樣的問題:同乙個測試場景,用執行緒併發就會超時失敗或報錯,而用程序併發就沒錯。
Loadrunner中的多執行緒
多執行緒 vuser 支援多執行緒環境。多執行緒環境的主要優勢是每個負載生成器都能執行多個 vuser。只有執行緒安全協議才能按執行緒執行。不適用於應用程式管理工具 注意 下列協議不是執行緒安全協議 sybase ctlib sybase dblib informix tuxedo 和 people...
python中的多執行緒是假的多執行緒
python中的多執行緒是假的多執行緒?為什麼這麼說,我們先明確乙個概念,全域性直譯器鎖 gil global interpreter lock python 的執行由python虛擬機器 直譯器 來控制,同時只有乙個執行緒在執行 對python虛擬機器的訪問由全域性直譯器鎖 gil 來控制,正是這...
windows中的多執行緒
建立新的執行緒的api函式是createthread hthread createthread security attributes,dwstacksize,threadproc,pparam,dwflags,idthread threadproc函式名 第乙個引數是指向security attr...