2012-08-01 58 views
0

當我向我的web服務發送大約100個用戶時,我得到的響應和web服務表現良好,但是當我檢查1000個併發用戶時,沒有任何請求得到回覆。Glassfish web服務高併發性

我正在使用jmeter進行測試。

當我發送1000個併發用戶時,我的glassfish管理面板會在瀏覽器中超時,並在4-5分鐘後打開。同時發生wsdl URL。

我已經在我們的局域網上測試過我的網絡服務,它可以在沒有任何問題的情況下爲2000個查詢工作。

請幫我找個解決辦法。

編輯1.0

一些更發現

喜上你的建議,我所做的是,我只是回到Web服務的函數調用,沒有查找,沒有刀,沒有串...只是返回一個字符串

線程池是2000沒有問題。

現在,當我跑的JMeter因爲他們跑得快1000個用戶,並返回〜200請求響應

因此,這意味着我的PC運行Windows 7與i5處理器和4GB的RAM時執行HostGator的專用服務器具有至強5 4GB內存*** 8個核:(

這不是什麼是我付$ 220一個月....

糾正我,如果我發現是錯的,我測試了我的應用程序在局域網b/w兩個pc的本地和它可以平穩地處理2000 + msgs

編輯1.1

經過大量的閱讀和實踐後,我得出的結論是,網絡延遲是造成這種行爲的原因。

我增加了glassfish的管理面板中的bean池大小,它有助於將併發用戶數提高到300,但是無論我在池中保留多少bean,問題都會再次出現。

所以朋友的問題是:請建議一些其他設置,我可以在Glassfish的管理面板中更改以從根中刪除此問題!

+0

問:發生這種情況時,是否檢查過操作系統錯誤日誌?無論如何,服務器操作系統是什麼?問:數據庫日誌怎麼樣?數據庫是什麼?你看到一個鎖定/死鎖的高峯?等等 - 你肯定需要做更多的功課來確定瓶頸發生的地方。 – paulsm4 2012-08-01 04:36:42

+0

請檢查編輯1.1,操作系統沒有問題,因爲php站點也被託管在同一個盒子上,測試的併發性相當高。 – David 2012-08-06 16:44:27

回答

1

您需要爲服務執行的各個步驟添加一些性能日誌記錄。它是否執行多個步驟?計算速度慢嗎?數據庫訪問慢?你的連接池不能很好地擴展?是否需要在Web服務器中調整某些內容以實現如此高的併發性?你需要測量這些東西來找到瓶頸,以便消除它們。

+0

嗨你的recomendation,我做了什麼,我只是返回字符串web服務函數調用,沒有查找,沒有道,沒有...只是瘸子返回字符串 線程池是2000年沒有問題。 現在,當我運行Jmeter的1000用戶他們運行速度很快,並返回約200請求的響應 所以這意味着我的電腦運行Windows 7擁有i5 4GB RAM是執行hostgator專用服務器有4GB RAM與Xeon 5 * ** 8個核心:( 這不是爲什麼每月付220美元.... 糾正我,如果我的發現是錯誤的,我測試我的應用程序局域網b/w兩個pc的本地和它可以處理2000 +信息順利 – David 2012-08-01 18:41:00

+0

你想比較一個局域網上運行的性能還是通過互聯網? – Bill 2012-08-03 03:15:45

+0

是的。請參閱我的編輯1.1 – David 2012-08-06 16:42:51

0

我在一個服務器(有200多個同時在線的用戶)有同樣的問題,我研究了官方的glassfish調優指南,但有一個參數非常重要,沒有出現。我也使用Jmeter,在我的情況下,時間響應呈指數級增長,但服務器的處理器保持低電平。

在glassfish管理服務器(配置/服務器配置/網絡配置/線程池/ HTTP線程池),你可以看到你的服務器可以處理多少用戶。 (玻璃魚2和3的參數不同)。

最大隊列大小:隊列中的最大線程數。值爲-1表示隊列大小沒有限制。

最大線程池大小:線程池中的最大線程數

最小線程池大小:線程的線程池中的最小數目

空閒線程超時:最大時間量線程可以在池中保持空閒狀態。在這段時間過後,線程將從池中移除。

我建議您將最大線程池大小設置爲100或200來解決此問題。

您也可以設置另一個JMV變量,例如:

-Xmx/S/M

-server

-XX:ParallelGCThreads

-XX:+ AggressiveOpts

我希望它有幫助。

+0

您好javier我繼續前進,沒有jvm tunning ....但不幸的是我不能超過100多個併發用戶....如果我超過用戶,我不能打開套接字例外Jmeter中的所有查詢 – David 2012-08-19 07:03:31