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