故障現象
某應用 rac 節點發生自動重啟,重啟后生成了系統 dump,系統恢復正常。
分析過程
1、檢查 errpt 日志,系統記錄重啟后生成 dump。
2、 分析系統資源的使用情況,檢查 nmon 和 OSwatcher 記錄,可以看到問題發生時系統資源使用沒有明顯異常。CPU,內存,IO 沒有明顯資源不足和瓶頸產生。
3、系統 dump 分析如下:
64K system pinnable frames remaining: 00000000 0.0MB
從系統 dump 中發現,系統發生重啟時,系統可用的 64KB pin 內存已經耗盡,可用的內存數值是 0,當有新的內存申請時,發生了系統宕機的情況。
4、進一步分析,大部分 64KB pin 內存用于 kernel heap。
系統 kernel_heap 使用的頁面的大小 64KB
NAME CUR DEF BOOT MIN MAX UNIT TYPE
kernel_heap_psize 64K 0 0 0 16M bytes B
5、初步分析系統重啟原因,是由于系統可用的 64KB pin 內存已經耗盡引起的。當 64KB pin 內存耗盡時,需要將 4KB 內存轉換為 64KB 內存,當系統處于轉換的過程當中,系統 kernel_heap 有內存申請,系統提供不了,導致了宕機。