簡體   English   中英

Jboss應用程序性能不佳

[英]Jboss application poor performance

我有一個在Jboss 5.1中運行的應用程序,每隔一周就會遇到性能問題,我們必須重新啟動該應用程序以使其恢復正常。 上圖是在高峰時段運行應用程序時捕獲的。我試圖了解在查看其他方面(例如基礎架構和網絡)之前,從應用程序角度來看還有改進的余地

通過jvisualvm生成的圖顯示了堆的使用情況

這是我為此應用程序獲得的堆大小設置

JAVA_OPTS="${JAVA_OPTS} -Xms3072m -Xmx6144m -XX:PermSize=512m -XX:MaxPermSize=2048m -Dorg.jboss.resolver.warning=true -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000 -Dsun.lang.ClassLoader.allowArraySyntax=true "
JAVA_OPTS="$JAVA_OPTS -verbose: gc -Xloggc:/test/log/gc.log -XX: +PrintGCDetails -XX:+PrintGCDateStamps"
  1. 為什么從圖形上看,即使我給了6G作為最大內存,應用程序也只使用3G內存?
  2. 我的GC設置正確嗎? 我可能是從其他服務器復制過來的,如何確保我對該應用程序具有正確的GC設置?
  3. 如果我從設置中刪除了時間間隔,GC發生得是否太頻繁了,它將如何確定何時必須運行GC?
  4. 我上次必須重新啟動應用程序並將其加載到jvisualvm中時進行了堆轉儲,但我不知道在堆轉儲中要查找什么(我不是開發人員)有人可以告訴我在堆轉儲中尋找什么以及如何改善它
  5. 我們還可以通過圖表和GC設置看到什么來提高應用程序性能?

以下是您對我最大能力的回答:

  1. 暫時,您的應用程序對3GB的堆感到滿意,不需要增加它。 大概每隔一周就會失敗。
  2. GC性能調整是答案。 僅當您知道調整內容時,才需要監視和調整。 然后測量,記錄。 沖洗並重復。
  3. 它會在需要時(當它的年輕一代空間用完時)運行GC。 它測量很多東西並考慮各種設置來決定何時進行GC。 它會在沒有任何幫助的情況下發生,但是您可以告訴它更多的全局信息,GC正在嘗試建立全局信息以進行自我調整。
  4. 您可以通過多種方式對其進行切片和切塊。 這種信息量產生了很多觀點。 您可以查看哪些類使用了最多的內存,這可能表明問題出在哪里(我認為內存泄漏或某些其他系統資源(如文件句柄)未釋放)。 有關VisualVM的基本用法,請參見此處
  5. 您需要知道導致問題的原因。 通常,最好的辦法是修復有故障的應用程序,而不是將負擔轉移給GC。 如果您有資源泄漏,無論如何遲早都會打擊您。

暫無
暫無

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

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