熊磊


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