此類情況下解決Oracle數(shù)據(jù)庫重啟的四種方案
Oracle數(shù)據(jù)庫發(fā)生重啟。
系統(tǒng)環(huán)境
AIX 6100-07-05-1228
Oracle 11g
故障分析
首先請DBA團(tuán)隊分析oracle數(shù)據(jù)庫的日志,經(jīng)DBA分析得知數(shù)據(jù)庫有兩個控制數(shù)據(jù)庫資源的進(jìn)程在20:06時hang了大概幾十秒,oracle出于數(shù)據(jù)保護(hù)的機(jī)制便重啟了數(shù)據(jù)庫。
然后從操作系統(tǒng)層面分析在20:06時操作系統(tǒng)的資源使用情況。
從nmon的數(shù)據(jù)中可以得知CPU在全天使用率都很低,都低于30%,可見CPU使用情況正常。
分析內(nèi)存的數(shù)據(jù)可知全天內(nèi)存使用率并不高,基本穩(wěn)定在80%以內(nèi),在20:06之前的一段時間,有計算內(nèi)存增長情況,這和當(dāng)時處理的業(yè)務(wù)相關(guān)。(注:nmon采樣點(diǎn)是6分鐘采一個點(diǎn)并取平均值)
再分析內(nèi)存的換頁,從圖可以見看到,在20:06時產(chǎn)生了大量的換頁,當(dāng)瞬間產(chǎn)生大量換頁時說明有應(yīng)用程序在短時間內(nèi)申請了大量的內(nèi)存,同時內(nèi)存不足并啟動lrud進(jìn)程進(jìn)行換頁,換頁帶來的問題就是會影響系統(tǒng)的性能。
由于nmon采樣的顆粒度比較粗,而oswatcher監(jiān)控的采樣間隔是20秒,因此分析oswatcher的數(shù)據(jù),主要分析vmstat的輸出,從vmstat的輸出可以看到當(dāng)時free還有3103118個內(nèi)存頁面(每個頁面4KB),即12GB內(nèi)存,而此時有746個pi和16989個po。因此可見在內(nèi)存有剩余的情況下產(chǎn)生了換頁。
下面分析在內(nèi)存有剩余的情況下產(chǎn)生換頁的原因,AIX的內(nèi)存管理機(jī)制是把內(nèi)存分為多個內(nèi)存池(memory pool),這個系統(tǒng)有90GB內(nèi)存,120個邏輯CPU。AIX會按8個邏輯CPU分一個內(nèi)存池的劃分機(jī)制,把內(nèi)池劃分為多個內(nèi)存池。即這個系統(tǒng)它的內(nèi)存池有15個:
為了優(yōu)化內(nèi)存的管理,在AIX 6.1時引入了numperm_global參數(shù),這個參數(shù)設(shè)置為0時代表在換頁時以內(nèi)存池為單位去判斷是否把計算內(nèi)存換出,這個參數(shù)設(shè)置為1時代表在換頁時以全局為單位去判讀是否把計算內(nèi)存換出。
在AIX特定版本下(6100-06-sp7 / 6100-06-sp8 / 6100-06-sp9 / 6100-07-sp4 / 6100-07-sp5)numperm_global這個參數(shù)設(shè)置為1會觸發(fā)操作系統(tǒng)的bug,即當(dāng)系統(tǒng)的PIN住的64KB頁面達(dá)到maxpin%(80%)時,換頁程序在換取4KB頁面時,即使有文件系統(tǒng)緩存剩余(大于minperm,缺省為物理內(nèi)存的3%)的情況下,也只換取計算內(nèi)存頁面,而計算內(nèi)存頁面被換出會對性能有很大的影響并有可能導(dǎo)致應(yīng)用程序緩慢或者數(shù)據(jù)庫掛起。
一般來說,大量PIN 64KB內(nèi)存頁面應(yīng)用程序并不多,但是Oracle數(shù)據(jù)庫出于提高性能的原因,一般都會將SGA和PGA PIN在內(nèi)存里。如果SGA和PGA加起來接近maxpin%,那么在numperm_global設(shè)置為1的時候就有很大的可能觸發(fā)上面提到的bug,導(dǎo)致early paging問題。
經(jīng)檢查發(fā)現(xiàn)numperm_global這個參數(shù)設(shè)置的為1,因此在oracle有大量64KB頁面申請時,64KB頁面達(dá)到maxpin%(80%),這時即使有12GB剩余的內(nèi)存,此時也只會把計算內(nèi)存換出去,這樣導(dǎo)致系統(tǒng)在20:06左右操作系統(tǒng)出現(xiàn)性能問題。
故障建議
基于上面分析,建議如下:
方案1:作為規(guī)避方案,把numperm_global修改為0,并重啟生效。
方案2:為了徹底解決early paging的問題,IBM在AIX 6.1 TL09 SP01版本中發(fā)布了補(bǔ)丁IV44998。在此種情況下,建議升級操作系統(tǒng)并啟用numperm_global參數(shù)來達(dá)到優(yōu)化內(nèi)存的分配機(jī)制的目的。
方案3:將Oracle SGA使用的內(nèi)存指定為16MB頁面,從而避免大量的64KB 頁面被PIN。
方案4:將Oracle的LOCK_SGA參數(shù)改為FALSE,使其不PIN內(nèi)存頁面。
責(zé)任編輯:售電衡衡
-
碳中和戰(zhàn)略|趙英民副部長致辭全文
2020-10-19碳中和,碳排放,趙英民 -
兩部門:推廣不停電作業(yè)技術(shù) 減少停電時間和停電次數(shù)
2020-09-28獲得電力,供電可靠性,供電企業(yè) -
國家發(fā)改委、國家能源局:推廣不停電作業(yè)技術(shù) 減少停電時間和停電次數(shù)
2020-09-28獲得電力,供電可靠性,供電企業(yè)
-
碳中和戰(zhàn)略|趙英民副部長致辭全文
2020-10-19碳中和,碳排放,趙英民 -
深度報告 | 基于分類監(jiān)管與當(dāng)量協(xié)同的碳市場框架設(shè)計方案
2020-07-21碳市場,碳排放,碳交易 -
碳市場讓重慶能源轉(zhuǎn)型與經(jīng)濟(jì)發(fā)展并進(jìn)
2020-07-21碳市場,碳排放,重慶
-
兩部門:推廣不停電作業(yè)技術(shù) 減少停電時間和停電次數(shù)
2020-09-28獲得電力,供電可靠性,供電企業(yè) -
國家發(fā)改委、國家能源局:推廣不停電作業(yè)技術(shù) 減少停電時間和停電次數(shù)
2020-09-28獲得電力,供電可靠性,供電企業(yè) -
2020年二季度福建省統(tǒng)調(diào)燃煤電廠節(jié)能減排信息披露
2020-07-21火電環(huán)保,燃煤電廠,超低排放
-
四川“專線供電”身陷違法困境
2019-12-16專線供電 -
我國能源替代規(guī)范法律問題研究(上)
2019-10-31能源替代規(guī)范法律 -
區(qū)域鏈結(jié)構(gòu)對于數(shù)據(jù)中心有什么影響?這個影響是好是壞呢!