2014-04-25 107 views
0

我試着去stresstest用JMeter的服務器。我遵循手冊併成功創建了測試(測試運行oke並且響應正確)。JMeter的永遠不會失敗

但是,即使我不斷增加線程的數量,它永遠不會失敗,但我一直在閱讀,必須有限制?那麼我做錯了什麼?

當我沒有運行JMeter時,我的CPU運行在+/- 5%。運行3000個線程,我看到線程數量增加了3000,CPU使用率達到+/- 15%。此外,JMeter從不抱怨出了問題。

我JMeter的配置是:3000 緩升時段:30 LoopCount: 線程數永遠(讓這一個多小時的運行,仍然沒有出錯)

的瓶頸,現在是我的互聯網連接,只是無法處理這個負載,最大值爲2.1Mbps。這是造成這個問題嗎?它會使我的延遲從每個線程10ms增加到每個線程超過5000ms,但線程仍在運行。

回答

0

假設您已確認您肯定沒有收回任何錯誤(例如,使用結果表監聽器或日誌記錄/僅使用結果圖監聽器顯示錯誤),並且您的互聯網連接正在以容量運行,是的,它聽起來像您的互聯網連接是瓶頸。這聽起來不像你的服務器有任何壓力。

如果您可以輕鬆使用其他機器(例如與您正在測試的服務器位於同一位置的服務器),則可以嘗試使用JMeter遠程(分佈式)測試來避開互聯網連接的限制。詳細信息請參見http://jmeter.apache.org/usermanual/remote-test.html。或者,如果它很簡單(例如,如果您在雲中使用虛擬機,並且可以輕鬆地將虛擬機與您的軟件一起旋轉),則可以嘗試使用功能最低的服務器,並強調測試以查看如果你可以使你的網絡連接掙扎(就像完整性檢查一樣)。

如果這沒有幫助,您的服務器上的更多細節(硬件規格,Web服務器軟件和線程池設置,語言)以及您正在測試的站點/頁面(大部分是靜態或動態?大量請求/響應?)會很有用。我確實設法讓低功率的機器(例如EC2 m1.small)通過2Mbps連接使用JMeter,但這取決於您正在測試的網站。

+0

我IM使用監聽器 - >視圖結果的三次查看輸出。但即使使用2Mbps的互聯網,服務器仍然是由線程調用的嗎?但是由於測試只是在等待響應,所以它不是一個正確的壓力測試。它是否正確?我想我也可以嘗試在服務器和筆記本電腦之間創建一個本地網絡來增加帶寬。 – someUser

+0

是的,服務器仍然應該被調用,但它可能不管理3000個並行請求。此外,你受到你的筆記本電腦的力量的限制。當您嘗試運行3000個線程時,它的性能如何以及CPU/RAM的外觀如何?我從來沒有從一臺筆記本電腦上試過這麼多。你確定你的網絡是瓶頸,而不是你的筆記本電腦的CPU /內存?只是爲了確認,你的服務器在遠程位置,並且測試在筆記本上運行,對吧?如果是這樣,我不認爲創建「本地網絡」會有什麼幫助 - 無論如何,所有事情都必須通過互聯網連接。 – Tim

+0

沒有服務器是「實習生」。所以我可以添加一個有線連接到路由器,然後到我的筆記本電腦。這樣我應該可以達到100Mbps。測試確實在我的筆記本電腦上運行。創建2個線程可使互聯網達到1.9Mbps,CPU達到20%左右。創建多達3000個線程將互聯網限制爲2.1Mbps,但CPU保持不變。但是,CPU上的線程數量確實增加了。所以在我看來,互聯網只是限制了這些線索,但它們實際上正在運行。 – someUser