2014-10-09 87 views
0

所以我需要與幾千長的輪詢請求掛鉤系統。Jmeter對newb的問題

我創建了一個具有所需數量請求的線程組。有幾件事讓我困惑。

(IM在Mac)

  1. 我運行jmeter.sh腳本啓動GUI。除非我運行jmeter-server,否則我無法運行測試。沒有它,我得到一個「無法連接到127.0.0.1 ...」的消息。文檔沒有提到需要啓動這個腳本。

  2. 在jmeter.sh腳本我設置最大內存export JVM_ARGS="-Xms4096m -Xmx4096m"。儘管如此,每當我開始運行測試我立即看到

Uncaught Exception java.lang.OutOfMemoryError: unable to create new native thread. See log file for details.

  • 我試圖運行我的測試無頭,並沒有得到更好的;它會在停止之前通過大約2k個請求。我希望有大約40-50k的線程(即請求)。我無法重用線程(我知道)作爲這個長輪詢,所以請求阻塞,直到導致它們釋放。
  • 有什麼建議嗎?提前Thanx。

    回答

    1

    這沒有意義。你不需要運行jmeter-server,除非你需要在服務器模式下運行meter,比如遠程引擎。

    根據您正在運行的你很可能超過可通過JMeter的使用的JVM的內存空間的Java版本。不知道你爲什麼分配4 GB。你應該罰款512M或1024M。我發現無論如何,Jmeter可能會隨時間泄漏。

    你的無頭測試應該給你一個提示,表明你要麼用Jmeter運行內存不足或者線程空間不足,更可能是你的服務器負擔過重,可能會耗盡線程池。

    我會做的第一件事是改變存儲的東西更保守,說-Xms1024m -Xmx1024m。另外,40-50k的請求不是40-50k線程。它們是彼此合作的概念,但不一定是相同的東西。所以也許你在Jmeter中設置了一些註定要通過創建太多併發線程而失敗的東西。

    +0

    我聽到你的聲音。我在Mac上,從來沒有安裝;我從解壓縮下載直接運行 - 可以嗎?我在失敗後才升級內存 - 我馬上得到內存不足錯誤*。另外,爲什麼當我嘗試從沒有運行服務器的GUI運行時立即出錯?最後,即時通訊測試長輪詢,所以請求不會返回,直到我做了一些事情導致他們 - 所以我認爲它需要1請求/線程(但可能是錯誤的) – hvgotcodes 2014-10-09 13:16:23

    +0

    嗨。我建議使用像Homebrew這樣的東西在Mac上安裝電錶。我使用Homebrew爲他們有一個包的東西。然後它是一個簡單的brew安裝計量器命令。 Jmeter腳本在啓動時從本地查找應用程序的響應。因此,如果您的應用程序在端口8080上運行,它將看起來像http:// localhost:8080/myApp。本地主機相當於127.0.0.1這是您的機器的環回地址;一個虛擬界面。 至於您需要在測試中模擬此長輪詢,請在線程組中添加延遲以模擬您的響應。 – TechTrip 2014-10-09 17:02:35

    +0

    要關注我的最新評論,請確保您的應用在本地主機上運行,​​並且您沒有任何與HTTP請求默認設置相沖突的HTTP請求設置(如果使用的話)。 – TechTrip 2014-10-09 17:17:46