1. 程式人生 > >(轉)LR 中執行緒程序問題,持續更新。。。

(轉)LR 中執行緒程序問題,持續更新。。。

使用者可以再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也在等待其他資源釋放才能繼續。這就是有些網友碰見的問題:同一個測試場景,用執行緒併發就會超時失敗或報錯,而用程序併發就沒錯。{摘自【效能測試從零開始】}