熊磊
摘 要:每個大型企業(yè)都會涉及使用數(shù)據(jù)庫,數(shù)據(jù)的存取修改都是通過數(shù)據(jù)庫完成,一旦數(shù)據(jù)庫出現(xiàn)性能故障,將直接導致企業(yè)業(yè)務的重大損失,因此數(shù)據(jù)庫對企業(yè)來說至關重要。Oracle是目前使用較廣泛的數(shù)據(jù)庫,而Exadata是核心由Database Machine(數(shù)據(jù)庫服務器)與Exadata Storage Server(存儲服務器)組成的一體機硬件平臺,其特點是對Oracle數(shù)據(jù)庫性能進行優(yōu)化和改進。文章簡要介紹了江蘇有線針對Exadata數(shù)據(jù)庫一體機進行的內(nèi)存擴容、業(yè)務遷移等工作,同時展示了內(nèi)存優(yōu)化前后的性能提升變化。
關鍵詞:Oracle Exadata;內(nèi)存擴容;數(shù)據(jù)庫性能
0?引言
江蘇有線BOSS系統(tǒng)(Business & Operation Support System,BOSS)是公司營業(yè)支撐、賬務計費的核心系統(tǒng),系統(tǒng)的業(yè)務數(shù)據(jù)非常重要。隨著江蘇有線全省BOSS系統(tǒng)整合,BOSS系統(tǒng)實際用戶數(shù)發(fā)展迅猛,IT支撐系統(tǒng)實際支撐用戶已經(jīng)達到3 000萬,BOSS核心數(shù)據(jù)庫數(shù)據(jù)也已經(jīng)超過30T。用戶數(shù)的增加、用戶數(shù)據(jù)的快速增長對江蘇有線BOSS系統(tǒng)的支撐能力提出了更高的要求,目前江蘇有線BOSS系統(tǒng)的CRM、BILLING核心生產(chǎn)庫由兩臺Exadata承載,前期運行過程中,隨著業(yè)務量越來越大,BOSS系統(tǒng)生產(chǎn)數(shù)據(jù)庫的內(nèi)存資源消耗越來越嚴重,一旦內(nèi)存資源耗盡,將導致數(shù)據(jù)庫重啟,影響全省業(yè)務的正常受理。
通過系統(tǒng)性能評估及方案確定,目前完成兩套Exadata核心數(shù)據(jù)庫服務器的內(nèi)存優(yōu)化工作,具體包含內(nèi)存擴容和業(yè)務遷移兩部分。經(jīng)過近2個月的穩(wěn)定運行,與優(yōu)化前相比,目前數(shù)據(jù)庫的緩存命中率均提升到了100%,“物理讀”性能提升了近4倍,其中BILLING數(shù)據(jù)庫的IOPS提升了近25倍,數(shù)據(jù)庫CPU利用率、邏輯讀、gc爭用等方面都有很大的優(yōu)化改善。
1? ? 技術實施
針對江蘇有線核心生產(chǎn)庫內(nèi)存不足的具體問題,通過采購擴容,每個節(jié)點內(nèi)存由原先的256G全部擴容到768G。數(shù)據(jù)庫層面同步擴大SGA(System Global Area,SGA)、PGA(Program Global Area,PGA)內(nèi)存緩沖區(qū)大小,確保數(shù)據(jù)讀寫的效率,同時修改操作系統(tǒng)層面HugePage大頁數(shù)量[1],減少數(shù)據(jù)庫的內(nèi)存頁的換頁頻率。
1.1? 擴容前后內(nèi)存使用情況比對
內(nèi)存擴容前,數(shù)據(jù)庫節(jié)點內(nèi)存平均使用率約89%,數(shù)據(jù)庫日常使用運行緩慢,業(yè)務量短時間增加極有可能導致節(jié)點內(nèi)存耗盡,數(shù)據(jù)庫進程重啟,影響前端業(yè)務正常使用。內(nèi)存擴容后,操作系統(tǒng)層面的可用內(nèi)存明顯增加,內(nèi)存使用率降到50%以下,數(shù)據(jù)庫SGA,PGA可用內(nèi)存調(diào)大,使得數(shù)據(jù)庫整體查詢、寫入效率較之前明顯改善,數(shù)據(jù)庫運行流暢,數(shù)據(jù)庫壓力明顯減小,前端業(yè)務受理效率提高,系統(tǒng)性能不會受前端業(yè)務量的大小而出現(xiàn)巨大波動,調(diào)整前后操作系統(tǒng)層面的內(nèi)存可用數(shù)量如表1所示。
1.2? 擴容前后數(shù)據(jù)庫性能比對
通過對擴容前后的AWR報告[2]對比可以發(fā)現(xiàn),內(nèi)存擴容后,數(shù)據(jù)庫較擴容前總體性能提升明顯,如圖1AWR報告所示,邏輯讀、物理讀寫等參數(shù)均有明顯改善。
除了邏輯讀、物理讀外,數(shù)據(jù)庫整體IOPS(Input/Output Operations Per Second,IOPS)等指標也提升明顯。以BILLING庫為例,內(nèi)存優(yōu)化前后的數(shù)據(jù)庫性能比對情況如表2所示。
通過內(nèi)存擴容,BILLING數(shù)據(jù)庫的物理讀效率提高了近3倍,IOPS提升了25倍,緩存命中率提高到了100%,CPU利用率提升了將近77%。數(shù)據(jù)庫數(shù)據(jù)的讀寫效率提升較明顯。
1.3? 實施業(yè)務遷移,確保數(shù)據(jù)庫內(nèi)存充足
僅僅實施內(nèi)存擴容只是一定程度上緩解問題的發(fā)生時間,一旦數(shù)據(jù)庫上承載的業(yè)務模塊增加到一定程度,將會再次導致系統(tǒng)的內(nèi)存不足直至內(nèi)存耗盡。江蘇有線對核心生產(chǎn)庫進行內(nèi)存擴容的同時,還同步詳細梳理了當前環(huán)境的業(yè)務工作,包括:
(1)遷移數(shù)據(jù)庫同步鏈路。實施前期,同步鏈路按照具體業(yè)務類型部署在不同的數(shù)據(jù)庫節(jié)點上,這就導致每個節(jié)點上都會存在數(shù)據(jù)同步的壓力。為了確保數(shù)據(jù)庫的穩(wěn)定運行,內(nèi)存優(yōu)化過程中對在用的將近10條同步鏈路進行梳理,制定遷移方案并無縫完成了該部分鏈路的遷移,遷移后所有同步鏈路均集中到一臺數(shù)據(jù)庫節(jié)點上,該節(jié)點僅規(guī)劃為數(shù)據(jù)庫同步專用,同時將該節(jié)點的數(shù)據(jù)庫實例從應用負載中剔除,確保同步鏈路和數(shù)據(jù)庫均能正常穩(wěn)定的工作。
(2)梳理前端業(yè)務,實現(xiàn)讀寫業(yè)務分離[3]。梳理生產(chǎn)庫上的所有業(yè)務,將部分僅需要查詢的業(yè)務(如接口讀取、訂購同步等模塊)從核心生產(chǎn)庫剝離出來,同時通過同步鏈路及查詢庫支撐剝離出的相關業(yè)務。此外查詢庫與生產(chǎn)庫間的數(shù)據(jù)可通過同步鏈路確保數(shù)據(jù)安全一致,這樣,假如生產(chǎn)庫出現(xiàn)重大故障,查詢庫可作為備份庫,實時接管前端業(yè)務,確保業(yè)務的可持續(xù)性。
通過對數(shù)據(jù)庫同步鏈路及查詢業(yè)務的梳理和遷移,數(shù)據(jù)庫外的其他業(yè)務占用的內(nèi)存被完全釋放出來,同時明確并減少數(shù)據(jù)庫節(jié)點上的業(yè)務部署,確保數(shù)據(jù)庫進程不會出現(xiàn)因為內(nèi)存被其他業(yè)務占用導致內(nèi)存不足而重啟的情況。此外,查詢庫的使用也一定程度上確保了生產(chǎn)庫的數(shù)據(jù)安全可用性。
2? ? 結(jié)語
作為江蘇有線BOSS系統(tǒng)的核心生產(chǎn)庫,一旦數(shù)據(jù)庫性能出現(xiàn)瓶頸,將導致全省的有線電視用戶業(yè)務受理受到影響,通過對江蘇有線兩臺Exadata數(shù)據(jù)庫一體機進行內(nèi)存擴容和業(yè)務梳理遷移,進一步提升了三套核心數(shù)據(jù)庫的整體性能,具體如下:
(1)內(nèi)存擴容后,兩臺Exadata一體機上承載的3套數(shù)據(jù)庫運行狀態(tài)良好,無性能瓶頸。
(2)內(nèi)存擴容且使用大頁內(nèi)存調(diào)優(yōu)后,數(shù)據(jù)庫gc等待事件已大幅降低,大大提升了數(shù)據(jù)庫性能。
(3)因為數(shù)據(jù)庫大多數(shù)操作都是讀操作,所以數(shù)據(jù)庫的性能主要也體現(xiàn)在讀操作上。從AWR分析報告可以得出:經(jīng)過內(nèi)存擴容后,數(shù)據(jù)庫在READ讀方面有非常大的提升,同時BOSS前臺系統(tǒng)的處理效率也跟著大大提升。
(4)由于內(nèi)存擴容,SGA增大,buffer pool,share pool等關鍵cache命中率均在100%。
(5)由于內(nèi)存擴容,很多SQL的執(zhí)行效率得到提升,使得數(shù)據(jù)庫CPU等資源的等待時間減少,優(yōu)化了數(shù)據(jù)庫層面的資源使用率,大大提升BOSS系統(tǒng)的處理性能。
(6)內(nèi)存擴容且完成相關業(yè)務遷移后,使得操作系統(tǒng)留有充足的內(nèi)存,可保障數(shù)據(jù)庫不會出現(xiàn)因內(nèi)存耗盡導致的重啟事故,同時也滿足日常數(shù)據(jù)導出遷移等需求。
隨著信息技術的發(fā)展,數(shù)據(jù)帶來的價值已經(jīng)為各行各業(yè)所認可。而作為數(shù)據(jù)的載體,數(shù)據(jù)庫的性能情況對企業(yè)發(fā)展有著非常重要的意義。數(shù)據(jù)庫的高性能運行能為公司全業(yè)務的開展提供保障,使公司能夠不斷適應靈活有效的市場策略變化,促進公司支撐不斷出現(xiàn)的新的需求,從而能夠使公司形成強大的競爭優(yōu)勢,保證在激烈市場競爭中的可持續(xù)發(fā)展。本文就江蘇有線核心生產(chǎn)庫內(nèi)存優(yōu)化的具體措施及優(yōu)化前后的性能進行了詳細的說明,通過內(nèi)存優(yōu)化,解決了數(shù)據(jù)庫存在的運行緩慢、頻繁重啟等問題,確保了公司業(yè)務的穩(wěn)定運行。
[參考文獻]
[1]張軼超.淺談科研院所行業(yè)數(shù)據(jù)庫性能優(yōu)化方法[J].百科論壇電子雜志,2019(14):796.
[2]楊瀟男,李勁華.基于AWR報告的數(shù)據(jù)庫性能的研究[J].青島大學學報(自然科學版),2020(2):21-26,31.
[3]沙光華,陳泳,張長江.讀寫分離技術在運營支撐系統(tǒng)中的應用[J].計算機工程與應用,2015(12):107-110,175.
(編輯 何 琳)