簡體   English   中英

Websphere 7線程轉儲分析

[英]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服務器訪問日志可以幫助識別這些消息嗎?

有了它們后,這些消息有什么獨特之處嗎? 如果您自己訪問這些消息,是否可以復制速度慢的消息? 他們是否總是在一天的同一時間/是否嘗試訪問相同的實體或執行相同的操作? 消息是由同一用戶發送的嗎?

如果是可復制的,那么您的工作就完成了一半。 現在,您可以開始使用概要分析工具來確定花費這么長時間的原因。

即使慢速消息無法重現並且您無法識別消息的任何區別特征,至少您現在也知道它何時發生並可以更精確地向下鑽取。

一旦掌握了時間,就可以在那時開始檢查不同的原因。 一個不詳盡的清單包括:

  • 當時是否有完整的垃圾收集?
  • 那時其他進程是否在應用服務器上運行?
  • 如果它訪問數據庫,那當時是否處於負載狀態?
  • 那時日志中是否有任何錯誤消息?
  • 那時有任何線程爭用嗎?
  • 當時是否有運行緩慢的數據庫查詢(例如,如果您使用Oracle,Oracle AWR可能會為您提供此查詢)?
  • 現在有很多用戶在使用該網站?

識別這些要求其自身的權利,但是Stackoverflow應該有很多答案。 關於線程爭用-是在發生問題時進行了線程分析。 就個人而言,我希望從那時起進行線程轉儲,以嘗試查看哪些線程被其他線程阻塞。

暫無
暫無

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

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