数据库危机
在企业和政府的数据库应用中,数据库本身容量非常大,动辄几百G乃至上T。随着各种业务的开展,数据库容量还会持续增大。随着数据库容量的增大,其对应的索引速度会相应变慢。在数据库应用中,用户要求延迟应该尽量小。查找索引的速度很大程度上决定了用户感受。此外,在数据库中经常访问的数据只占总容量的一小部分。
破解危机:SmartCache技术
随着SSD技术的发展,SSD在存储领域使用的范围越来越广。又由于对于SSD而言,单位GB的成本要比传统机械硬盘高很多,因此目前业界的存储阵列使用SSD主要有两种方式,作为分级存储介质和SSD Cache。
华为赛门铁克SSD Cache方案叫做SmartCache。把阵列中的一个或多个SSD硬盘组成SmartCache缓存池,通过将阵列中其他传统机械硬盘中的热点数据周期性的拷贝到SmartCache中,使主机在访问热点数据时,直接从SmartCache中读取,利用SSD硬盘的读性能优势,极大的提升阵列系统的整体读性能。
图1 SmartCache实现原理
智能SmartCache实现原理
——按照块的方式对SSD硬盘进行划分,为每一个块进行编号,块的大小默认为1MB。
——主机从机械硬盘中读取数据时,系统会实时对开启SmartCache功能LUN中的数据块访问频率进行统计。
——每隔半小时系统会对开启SmartCache功能的LUN中的数据块按照访问频率进行排序。
——系统根据该排序结果将访问频率最高的数据拷贝至SmartCache池中,若SmartCache池中没有空闲缓存块,则将SmartCache池中变冷的数据块淘汰以获取缓存块资源。
——主机读IO时,若全命中SmartCache池中的缓存块,则从SmartCache池中读取。
——读IO没有全命中SmartCache中的缓存块时,则从机械硬盘中读取。
——机械硬盘中的数据更新时,SmartCache池中对缓存块同步进行更新。
SmartCache五大技术优势
——高性能:针对Web Server应用随机读性能提升接近5倍,针对File Server应用随机读性能提升接近2倍。
——高可靠性:所有数据都保存在传统磁盘中,由RAID保证数据的安全可靠,SSD中的数据仅仅是一个副本。
——高可用性:多盘组成SmartCache池时,除非所有成员盘全部失效,否则不影响功能的实现。
——高可扩展性:支持SSD盘片在线添加。
——低功耗:SmartCache池利用SSD和传统磁盘组成混合阵列降低系统整体功耗。
数据库IO特性
根据SSD本身的性能特性,SmartCache适用于读多写少有热点的随机小IO场景。因此,在使用SmartCache之前,了解IO特性和负载情况非常重要。对关系数据库而言,索引数据是访问最为频繁的,因此当数据库很大时,索引速度的快慢决定了访问数据库的延迟。
为了更直观的体现数据库IO特性,在实验环境中,将数据库关系表存放在400G的LUN中,使用测试工具模拟数据库应用,以每G为单位统计主机访问数据库时的访问数据。如下图所示,经常访问的数据量只占到整个数据库空间的一小部分,大部分数据库空间的访问量很小或者几乎没有访问。在客户真实环境中,数据库中只有10%的数据被经常访问。相比在实验室模拟的数据库IO特性,客户真实环境中的数据具备更加明显的热点。
图2 Oracle访问400G LUN的IO分布
1SmartCache技术提升数据库应用性能
下面以具有OLTP特性的数据库为例进行测试,说明数据库应用SmartCache后获得了明显的性能提升。OLTP(On-Line Transaction Processing)联机事务处理系统,也称为面向交易的处理系统,其基本特征是顾客的原始数据可以立即传送到计算机中心进行处理,并在很短的时间内给出处理结果。这样做的最大优点是可以及时的处理输入的数据,及时地回答。也称为实时系统(Real time System)。典型的OLTP系统应用有电子商务系统,银行,证券等,如ebay的业务数据库。OLTP以小的事务及小的查询为主,评估其系统性能时的几个重要性能指标是实时响应时间(Response Time)、每分钟事物处理数(TPM,Transaction Per Minute)和每秒IO数(IOPS,I/O Per Second)。
Swingbench是Oracle UK Database Solutions group开发的一款免费的性能测试工具。Swingbench基于TPC-C标准对OTLP业务场景模式进行性能测试,能够方便的调整Swingbench配置文件中OLTP各项业务所在比例,使得模拟的业务场景中读写IO比例大概维持在所需要的比例8:2。
测试组网
测试组网如图3所示:
图3 测试组网图
本文中所使用的环境配置如下表:
表1 SmartCache对数据库性能提升实验环境配置
测试结果
在打开SmartCache功能稳定运行14小时后,测试结果如图4、图5、图6所示:以图4的IOPS测试结果为例:图中的虚线为SmartCache功能关闭与开启的分界线。在SmartCache功能未开启时,IOPS值稳定在2000左右;在测试时间的第三个小时开启SmartCache功能,系统经过一段时间的热点统计后,开始逐步将热点数据拷贝至SmartCache池中,此时IOPS值呈上升状态;当全部热点数据均缓存至SmartCache池后,上层应用下发的IO大部分命中SmartCache池中,此时IOPS稳定在8000以上。在开启SmartCache功能后数据库系统性能较原系统有了较明显的提升,IOPS为原系统的5.64倍,TPM为原系统的6.43倍,RT下降为原系统的27%。
图4测试结果–IOPS
图5 测试结果–TPM
图6 测试结果–Response Time
SmartCache技术,有效解决性能问题
华赛SmartCache技术利用系统中的高性能SSD,缓存应用中的热点数据,从而对热点数据的访问进行加速,特别是对于那些随机小IO业务,加速效果明显。通过对具有OLTP特性的数据库应用场景进行测试发现, SmartCache能很好的解决大型数据库目前碰到的性能问题。
u通过把热点数据缓存到SmartCache池中,大大提升了系统的整体读性能。数据库索引数据的访问频率高于普通数据,通过SmartCache的热点识别和热点拷贝,索引数据会逐步缓存到SSD中,后续用户对于索引数据的访问将直接从高性能的SSD中获取,降低了访问索引数据的时间,从而更好的符合了用户的感受。
u所有数据都保存在使用了冗余技术的传统磁盘中,SmartCache池的SSD中保存的仅仅是热点数据的副本,很好的保证了数据库中数据的安全性,同时由于数据库应用的大量随机小IO访问都在SmartCache池中命中,减少了传统磁盘磁头频繁摆动的次数,增长传统磁盘的寿命。
u通过利用少数的几块SSD就可以达到需要部署大规模传统磁盘阵列才能达到的性能,降低了系统整体的TCO,同时也降低了功耗,与当前业界倡导的绿色存储相符合。