暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

由一起性能问题谈服务器主频对数据库程序处理的影响

开系植物园 2018-05-30
459

        近期由于生产机房需要装修的缘故,DBA团队需要将多套数据库迁移至同城园区。数据库迁移是生产运维中常态化操作之一,其主要流程是:搭建一套和生产硬件、软件一致的新环境->采取技术手段拷贝数据->业务停机后安排新旧系统切换。在多年生产运维实践中,这套流程已经非常标准化,各个环节沉淀了大量的标准操作手册,每年置换多达上百套系统也鲜有发生问题。恰恰不巧的是,其中一套系统平稳迁移后,在整体硬件资源匹配、语句访问路径相同、应用数据量没有变化的情况,关键批量的执行耗时反而增加了20%。这又是怎么样的一个情况呢?今天我们就来讲讲这个问题。

1、问题现象

        一套Oracle数据库(服务器为IBM Power 595+ HDS G1000磁盘机+Oracle RAC 11.2.0.3数据库)从一个园区迁移到另外的园区,迁移方案是在新园区搭建一套IBM Power 780+ HDS  G1000磁盘机的新系统,安装数据库软件后,将新环境通过RMAN备份方式搭建为生产环境的备机(该方式可确保数据结构、元数据、访问路径等完全保持一致),在业务停机后通过switchover的方式完成角色切换。整个实施过程平稳顺利,新系统正常运行,技术验证和联机查询都是好的。

        应用负责人对置换后的批量进行了跟进分析,发现了问题:一个关键生成收信文本的作业时间耗时明显变长了(平均耗时从原来40分钟增加到60分钟以上)。

 

注: 拐点即出现在数据库置换前后


        DBA对数据库语句效率分析也发现了差异,从下面标红框的语句执行耗时对比来看,置换后的耗时比置换前有一定比例的增长,这表明相同的程序在数据库内部处理变慢了。

(a) 置换前的环境

(b)置换后的环境


2、分析过程回顾

    (1)初步分析对比

        问题暴露后,DBA马上组织了对置换前后的软硬件环境进行了对比排查:

        (a)首先比对了硬件环境。置换前是IBM P595系列,置换后是IBM P780,物理核数都是20个,逻辑CPU核数后者是前者的2倍。P780是更新的高端设备,根据官方的资料以及生产的运维实践,其性能是优于P595的。

        (b)其次比了磁盘性能。考虑到文件生成主要是IO密集型操作,对磁盘响应要求较高。新老环境所在的磁盘机都是HDS G1000的高端存储,盘机的读写响应时间都在3ms左右,没有差异。 从awr报告比对来看,数据库离散读、顺序读都没有显著的变化,说明问题也未出现在磁盘机侧。

        (c)最后比对了数据库环境。对数据库的各项参数、引发差异的语句执行计划进行了分析,也没有发现不一样的地方,应用的数据量也保持稳定,批量程序也没有变化。

        问题来了,既然硬件、存储、数据库、应用程序都没有显著差异,为何批量生成文件的耗时有明显变化、数据库内部SQL语句的执行耗时也有区别? 一定还有一些细微、未被关注的地方,导致了置换前后的差异,必须要认真比对、抽丝剥茧。

    (2)进一步的定位分析

        (d)由于SQL语句的执行时间存在差异,再回到数据库自身查到线索,把重点SQL的cpu消耗、IO耗时、整体时间做详细分析,发现了蛛丝马迹:置换前TOP SQL的CPU消耗都在80%以上,而置换后TOP SQL的CPU消耗都在50%左右,差异比较明显,初步感觉是新环境cpu处理不够强大、忙不过来,这和P780整体更优的定位有些矛盾。

置换前的top sql(红框表示cpu消耗占比)

置换后的top sql(红框表示cpu消耗占比)

 

        (e)再分析下关键批量的执行特征,经仔细核对程序代码并与开发中心沟通了解,用于生成授信文件的程序是单线程批量,没有启用并行处理。也就是说P780更多的逻辑CPU核数对它没什么作用,处理快慢更依赖与单核的处理能力。

        (f)再对新老环境的硬件进行详细比对,发现了在主频方面存在的差异: 原来的P595环境主频是5000MHZ,新环境P780虽然设备更新、逻辑核数更多,但主频却是3920MHZ,这就导致单核处理能力不如P595,其优势在于多线程的变形处理。进一步与硬件服务商沟通了解,主频差异在于所使用芯片型号的不同,P780的新一代芯片的设计主频比P595有所降低,但在应用实践中还鲜有发生P780P595处理慢的情况,详细的技术机理还在和公司实验室做详细确认。

 

3、结论与启示

        至此原因大白:新老环境差异的原因在于不同设备型号主频不同,再加上批量程序自身局限在串行处理,两方面叠加导致了置换前后处理效率的差异。 生产将系统再迁移到P595的环境后加以解决,对于批量程序优化的相关建议DBA团队也在和开发中心沟通尽快组织优化。

        对于生产环境的置换,要在服务器、软件、磁盘机、应用程序等各个方面确保前后的匹配,包括服务器主频等指标应纳入关注指标体系,在规划分配时做好安排,才能最大限度保证置换自身的稳定性。

        应用程序使用并行充分利用硬件资源是推荐做法,对于关键作业要在程序设计等环节充分考虑,避免因串行处理出现性能瓶颈。


文章转载自开系植物园,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论