2016-05-12 62 views
0

我們有一個Wildfly實例,它在36核心服務器上運行一個簡單的java rest應用程序。該應用程序沒有在後臺運行的默認作業,它只是響應用戶請求(每天< 500)。在Wildfly上分析Java應用程序的遠程調試堆棧

我們的管理員今天晚上注意到一個奇怪的行爲。從上午2點開始,野蠻實例顯然使用了服務器的全部容量。那時沒有用戶可以使用該應用程序。在前一天晚上的最後一次用戶操作和今天上午的第一次用戶操作之間沒有日誌文件可用。

我已經在eclipse中啓動了遠程調試器,並且想要了解Wildfly開始的所有線程實際上都做了什麼?

  1. Thread[MSC service thread 1-xx](Running) 68個條目。這些線程是什麼?他們能否影響性能/容量覆蓋率?我可以限制這些線程的數量嗎?我應該這樣做嗎?
  2. Deamon Thread [weld-worker-xx](Running) 25個條目。
  3. Thread[default task-x](Running) 8項。這些可能是實際的用戶任務?
  4. Thread[XNIO-1 I/O-x](Running) 2個條目。輸入/輸出到數據庫?或者任何文件,例如記錄e.q.?
  5. Daemon Thread [Transaction Reaper](Running)
  6. Deamon Thread [Transaction Reaper Worker 0](Running)
  7. Thread [Periodic Recovery](Running)
  8. 很多<not responding>。這實際上意味着什麼?線程正在運行,但我不允許看一下?
+0

這是一個相當廣泛的問題,但我懷疑你的問題是與沒有響應的線程。我可以想象他們是那些正在努力研究和吃掉你的CPU的人。 – Kayaman

+0

您可能還想發佈'kill -3 '讓Wildfly將線程轉儲打印到標準輸出(應該被重定向到某個文件)。保存轉儲以供日後分析。 – Kayaman

+0

你好卡亞曼,謝謝你的提示。重啓後''無響應>'線程消失並且性能得到了合理的改善。我們將在下次出現問題時嘗試打印線程轉儲。我仍然對所有其他線程堆棧條目的解釋感興趣,只是爲了瞭解正在發生的事情。所以任何解釋都會很棒! –

回答

0

在一般情況下,你可能在wildfly看看線程子系統:

https://docs.jboss.org/author/display/WFLY8/Threads+subsystem+configuration

這種性能優化指南也是非常有用的理解線程和線程池:

http://www.mastertheboss.com/jboss-server/jboss-performance/wildfly-performance-tuning

你提到的線程類型是,AFAICT:

MSC線程是模塊化服務容器線程。 https://issues.jboss.org/browse/MSC-144(-Dorg.jboss.server.bootstrap.maxThreads)

默認線程:在由線程子系統完成各項任務定義的池的I/O線程他們可以通過配置此限制。

XNIO線程:Undertow依靠XNIO API使用bounded-queue-thread-pool創建工作線程。 https://developer.jboss.org/thread/241230?start=0&tstart=0 - 一些很好的性能優化技巧在這裏:http://www.mastertheboss.com/jboss-server/jboss-performance/wildfly-performance-tuning

焊接工作線程是CDI實現使用線程,可配置爲這樣:http://docs.jboss.org/weld/reference/latest/en-US/html/configure.html#_thread_pool_configuration。看起來焊縫爲每個部署保留一個線程池(https://issues.jboss.org/browse/WFLY-4653),並且可以獨立從WF9開始配置。XML

交易收割機和工人負責監測JTA事務和超時等http://www.mastertheboss.com/jboss-server/jboss-configuration/configuring-transactions-jta-using-jboss-as7-wildflyhttp://www.hhutzler.de/blog/a-deeper-dive-into-transaction-timeouts-with-jee7wildfly-and-oracle-rac/

恢復沉豔軍,丁紅瑞線程:系統崩潰後恢復定期線程應該使用XA恢復和XA承諾這承諾交易沒有任何用戶干預。 http://www.hhutzler.de/blog/a-deep-dive-into-2-phase-commit-with-wildfly-and-oracle-rac/

相關問題