iT邦幫忙

2022 iThome 鐵人賽

DAY 16
0
DevOps

30天WebSphere入門及經驗分享系列 第 16

D16/透過hung threads提示找出程式緩慢原因(二)

  • 分享至 

  • xImage
  •  

昨天提到了WebSphere實用的threadMonitor功能,
預設條件下,threadMonitor會每3分鐘檢查一次有沒有停住超過10分鐘的thread。

在這樣的條件下,假如我們上了一支很有問題的程式,會有一定的機率造成lock,
可是又都剛好在還不到10分鐘就解掉lock了,那我們發現這個問題的機會就降低了不少。

為了避免這樣的情形,我們可以透過console調整設定,將hang的定義調整為更短的時間。

左側選單 > Servers > Server Types > WebSphere application servers > server1
進入server1頁面後,
https://ithelp.ithome.com.tw/upload/images/20221001/20128973PhZodKbA2c.png
點擊右側Server Infrastructure >Administration > Custom properties
https://ithelp.ithome.com.tw/upload/images/20221001/20128973lYj3BimhwJ.png
按下New...新增設定

Name:
com.ibm.websphere.threadmonitor.threshold
Value:
60

設定只要thread停止超過60秒,就視為hang
https://ithelp.ithome.com.tw/upload/images/20221001/20128973N2zw4I6hu4.png

Name:
com.ibm.websphere.threadmonitor.interval
Value:
60

設定threadMonitor每60秒就檢查一次thread的運作狀況
https://ithelp.ithome.com.tw/upload/images/20221001/201289731YtyMa1JmZ.png
之後按下save儲存並重啟server以生效

接著我再試試將製造hang thread的情境,
這次我把sleep的秒數設定為90秒,看看會不會被偵測到
https://ithelp.ithome.com.tw/upload/images/20221001/20128973lKLK0pb3sE.png
試了幾次才成功,可能是因為threadMonitor偵測時thread剛好還沒停止滿60秒的緣故。

如果要提升精準度,或許可以再將threadMonitor偵測的秒數再調短吧。
大家也可以依自己的需求來調整秒數,不過也要注意,偵測太頻繁的話也可能造成效能上的負擔。

另外還有偵測到hang時自動生成java core的設定也很實用,
可參考IBM官方文件:https://www.ibm.com/docs/en/was-nd/8.5.5?topic=support-configuring-hang-detection-policy


上一篇
D15/透過hung threads提示找出程式緩慢原因(一)
下一篇
D17/調整web container大小
系列文
30天WebSphere入門及經驗分享36
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言