[英]Websphere 7 Thread Dump Analysis
我們正在使用WAS 7,並且將耳朵部署在此上。
環境細節
操作系統:AIX 7.1
處理器架構:ppc64
處理器數量:8
Java版本:JRE 1.6.0 AIX ppc64-64 build jvmap6460sr10fp1-20120202_101568(pap6460sr10fp1-20120321_01(SR10 FP1))
虛擬機版本:VM內部版本20120202_101568即時(JIT)編譯器開關,提前(AOT)編譯器開關,編譯器版本:r9_20111107_21307ifx1
垃圾收集器版本:GC-20120202_AA_CMPRSS
Java堆信息
最大Java堆大小:1024m
初始Java堆大小:512m
我嘗試使用IBM Thread和Monitor Dump Analyzer工具分析堆轉儲。
以下是線程摘要
但是我無法分析,這個靜力學是好還是需要改進?
由於我們始終有很多線程處於“駐留/等待狀態”狀態(每天消耗10個線程池),因此有時應用程序需要4秒鍾來處理5條消息,假設每秒是5條消息。
應用程序可以很好地工作,並達到每秒5條消息的SLA,但是一天要幾次處理4條消息需要4秒鍾。
注意:並發處理。
如果我當時正在嘗試進行線程轉儲,那就像我在上面共享的一樣。
除非您有充分的理由認為線程爭用是原因,否則我認為線程轉儲不是研究“為什么一天中只有很少的時間處理5條消息的時間很少”的最佳位置。 可能有很多原因導致該問題,其中線程爭用只是其中之一。
首先,我將識別這些消息。 大概消息的速度記錄在某個地方,如果沒有記錄,我將從此開始。 Web服務器訪問日志可以幫助識別這些消息嗎?
有了它們后,這些消息有什么獨特之處嗎? 如果您自己訪問這些消息,是否可以復制速度慢的消息? 他們是否總是在一天的同一時間/是否嘗試訪問相同的實體或執行相同的操作? 消息是由同一用戶發送的嗎?
如果是可復制的,那么您的工作就完成了一半。 現在,您可以開始使用概要分析工具來確定花費這么長時間的原因。
即使慢速消息無法重現並且您無法識別消息的任何區別特征,至少您現在也知道它何時發生並可以更精確地向下鑽取。
一旦掌握了時間,就可以在那時開始檢查不同的原因。 一個不詳盡的清單包括:
識別這些要求其自身的權利,但是Stackoverflow應該有很多答案。 關於線程爭用-是在發生問題時進行了線程分析。 就個人而言,我希望從那時起進行線程轉儲,以嘗試查看哪些線程被其他線程阻塞。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.