您好,登錄后才能下訂單哦!
這期內容當中小編將會給大家帶來有關was日志報HMGR0152W檢測到cpu饑餓的示例分析,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
WebSphere Application Server控制臺顯示部分應用不可用,經查日志發現報 HMGR0152W: 檢測到 CPU 饑餓。當前線程調度延遲是 102 秒。HMGR0152W這個信息報出說明當前進程中存在JVM線程調度延遲。表現就是在系統運行高峰時期,系統出現WEB頁面打開緩慢,登陸應用系統緩慢,登陸后應用運行緩慢,有時甚至無法訪問,嚴重會引起WAS宕機,有很多原因可能導致這個調度線程不能以適時的方式獲得CPU資源。
原理:WebSphere Application Server高可用管理器組件中包含線程調度延遲檢測邏輯,它會周期性的啟動一個線程, 用這個線程去跟蹤是否線程已經被分派,是否按照計劃運行。默認情況下,延遲檢測線程每30秒鐘運行一次, 如果超過計劃5秒鐘沒有運行就會在日志中記錄一條HMGR0152W消息。這條消息顯示了延遲的時間或者與該線程期望得到CPU和實際得到CPU的時間差。
下面是這個問題的一些常見原因:
1. 物理內存被過量使用并且產生了分頁.
2. 進程的堆大小太小導致垃圾回收頻繁或者過長阻塞了其他線程的執行.
3. 系統中運行著太多線程,負載過高可能導致CPU使用過高.
這個警告信息如果不及時修正可能導致WAS不穩定的情況.你需要分析為什么調度線程發生了延遲,需要采取哪些措施.下面是一些常用的解決方法:
1. 增加物理內存防止分頁.
2. 優化JVM堆內存配置,從而優化垃圾回收.(在WAS控制臺里可設置詳細垃圾回收,JVM的上下限值)
3. 降低系統的整體負載到一個可以接受的值.
如果HMGR0152W信息不是經常報出,并且報出的消息延遲很短(例如小于20秒), 通常不會有其他問題發生,這個時候這個消息可以被忽略.
當然在這種情況下,還可以做個javacore來看下,究竟是哪些線程在等待(1、等待什么資源 2、有多少個請求在等待、3、有多少個線程正在執行);另外檢查下操作系統的配置,這個也和操作系統參數有關的。(這個可根據javacore中的結果來進一步確認);檢查下數據是否有資源沖突現象,或者鎖表現象。
關于JAVACORE的分析,可參看我的《was進程占用CPU率較高實例深解析》 http://xjsunjie.blog.51cto.com/999372/1136156
高可用管理線程調度延遲檢測可以通過配置下面兩個定制屬性中的一個來實現:
1. IBM_CS_THREAD_SCHED_DETECT_PERIOD 參數決定延遲檢測線程多長時間運行一次.默認值是30秒.
2. IBM_CS_THREAD_SCHED_DETECT_ERROR 參數決定多長時間的延遲需要被用這個警告信息記錄在日志中.
這些屬性在WAS控制臺里,你可以按照如下方法配置:
1. 在管理控制臺中, 點擊服務器 > 核心組 > 核心組設置, 然后選擇核心組名字.
2. 在其它屬性下, 點擊定制屬性 > 新建.
3. 輸入屬性名和值.
4. 保存配置.
5. 如果是網絡部署環境, 請注意同步所有節點.
6. 重新啟動所有的服務器是該配置在該服務器上生效.
雖然我們可以用上面兩個屬性增加線程調度檢測時間, 但是不建議通過它們使HMGR0152W警告消息完全不再報出. 這個方法只是用于優化系統消除線程調度延遲.
上述就是小編為大家分享的was日志報HMGR0152W檢測到cpu饑餓的示例分析了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。