簡體   English   中英

Tomcat性能問題

[英]Tomcat performance issue

我有一個運行緩慢的Web應用程序,有時會掛起。 這是一個與學校相關的Wicket應用程序,具有報告和編輯功能,也是一個Servlet,自動化客戶端使用該Servlet通過HTTPS獲取/發布數據。

在忙於進行大量編輯/上傳/下載的繁忙時間,該應用程序變得呆滯且無響應。 我收到Wicket“ PageMap仍然鎖定”錯誤。 Tomcat似乎一直在堅持。 內存使用率可以管理,大約50M。

我設置了YourKit以獲得一些性能分析信息,並且在忙碌的一段時間中發現,這里花費了81%的Tomcat CPU時間:

org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run()
org.apache.jk.common.ChannelSocket$SocketConnection.runIt(Object[])
org.apache.jk.common.ChannelSocket.processConnection(MsgContext)
org.apache.jk.common.ChannelSocket.receive(Msg, MsgContext)
org.apache.jk.common.ChannelSocket.read(MsgContext, byte[], int, int)
java.io.BufferedInputStream.read(byte[], int, int)
java.io.BufferedInputStream.read1(byte[], int, int)
java.io.BufferedInputStream.fill()
java.net.SocketInputStream.read(byte[], int, int)
[Wall Time]  java.net.SocketInputStream.socketRead0(FileDescriptor, byte[], int, int, int)

在這個應用程序中,我有大約250個客戶端通過SSL輪詢服務器,要求每30秒更新一次。 大多數情況下,這會迅速返回空響應。 有時,會有大量的數據庫活動,並且可能將大量數據(幾MB)發送回客戶端。

那么,這81%的活動來自何處? 幾個連接速度很慢的客戶端是否可以通過等待等待的請求主體來使tomcat線程陷入癱瘓?

任何人都看到過類似的東西,或者對如何測試/解決/修復問題有任何建議?

內存使用可能是原因。
您應該檢查java進程的內存使用情況,以查看它獲得了多少。
如果還不夠,則必須在為tomcat設置的所有位置設置Xmx jvm參數。

您應該設置一個測試環境,並嘗試通過負載測試來重現該環境。
這樣,您可以找出原因。 否則,有太多因素。
另外,通過這種方式,您可以嘗試修復而不會損害產品環境。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM