1

Weblogic によってマークされたスタック スレッドを示すログがあります。

<Apr 23, 2013 7:48:25 AM CST> <Error> <WebLogicServer> <BEA-000337> <[STUCK] ExecuteThread: '276' for queue: 'weblogic.kernel.Default (self-tuning)' has been busy for "668" seconds working on the request "weblogic.servlet.internal.ServletRequestImpl@23ba221b[
GET /XXX/saveInfo.do?fx=duration&info=25159,0,0,0,0,0,0,25153 HTTP/1.1

私の場合、スタックしたスレッドが多すぎると、サーバーの応答時間が遅くなり、より多くのメモリを消費することがわかりました。

スタック スレッドの数を自動レポート ロボットのヘルス インデックスにしたいと考えています。ログファイル以外にカウントする方法は?スタックしたスレッドをカウントするのに役立つコマンドまたは API はありますか?


@viccari からのソリューション ( wlstサンプル コード) をまとめました。

from tempfile import mktemp

connect('your_account', 'your_account_pass', 'localhost:7001')

# dump thread details to a temp file
file = mktemp()
threadDump(writeToFile="true", serverName="your_server_name", fileName=file)

# count the string token "[STUCK]" by line
count = 0
f = open(file, "r")
for line in f.readlines():
  if line.find("STUCK") > 0:
    count = count + 1

print "NUM_OF_STUCK_THREADS: ", count
4

1 に答える 1