熊磊
摘 要:每个大型企业都会涉及使用数据库,数据的存取修改都是通过数据库完成,一旦数据库出现性能故障,将直接导致企业业务的重大损失,因此数据库对企业来说至关重要。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.
(编辑 何 琳)