2016-08-11 216 views
1

我有Jmter設置分佈式服務器 - 單個客戶端和Jmeter服務器數量。 我設置了mode=StrippedDiskStore以減少對負載生成的影響。如何強制Jmeter服務器中的線程立即停止

我使用Stepping Thread Group來控制線程數和時間。 整個解決方案在負載相對較小時工作正常。

但是,當我增加它 - 在我的情況下超過1000每臺機器我注意到,當測試達到「停止」時間,在步進線程組中定義,Jmeter開始停止線程,但它不能立即做到這一點,因爲我配置它 - 例如在1秒內。

我可以看到Jmeter服務器關閉了大部分線程,但仍然「等待」最後一個線程。當然,我們的測試應用程序超載了,請求和響應都非常遲緩。

但是我想只是「削減」剩下的任何事情並完成測試。 否則,我需要等待很長一段時間 - 兩倍或更多的時間是最初爲該場景定義的。如果我通過Jmeter提供的腳本殺死服務器或發送關機消息,則無法使用StrippedDiskStore模式下載Jmter服務器的結果。

是否有任何配置參數或其他的東西可以幫助我嗎?

我也監視Jmeter服務器和CPU和內存遠低於100%的機器,所以我認爲這不是問題在這種情況下。

+0

我沒有得到一件事,立即停止測試的條件是什麼? –

+0

步進線程組控制整個場景的線程數和時間。所以我可以設定整個場景應該是5分鐘。之後,我期望Jmeter將關閉所有線程並完成測試。但是我所經歷的是,有些線程在那段時間之後沒有被關閉,我認爲他們在等待響應或類似的東西。 – Michal

回答

2

您的問題可能是由於缺少Http請求超時,您可以使用HTTP Request Defaults來設置。

現在關於立即停止,你可以(只腳本:-)期間)使用停止測試在JMeter的GUI或:

  • 斌/ stoptest.sh

  • 斌/ stoptest.cmd

這將中斷採樣器(如果可中斷,HTTP請求),但會導致這些採樣被標記爲錯誤(這是常規)

作爲一個方面說明,我不確定StrippedDiskStore是最佳選擇。爲什麼不使用StrippedAsynch?

+1

看來我的主要問題實際上是StrippedDiskStore模式。在強制測試停止的情況下,我丟失了數據。腳本bin/stoptest.sh完成強制測試停止的工作。我切換到StrippedAsynch模式,我可以使用停止測試的結果。謝謝 – Michal

+1

這將是很好的報告一個錯誤。謝謝 –

+0

我試圖重現我的問題只有單個服務器和停止測試,即使StrippedDiskStore給我結果發送回客戶端。我需要仔細看看它。但肯定會報告任何會發現的問題。再次感謝。 – Michal