查看: 3803|回复: 10

[原创] 看中国最美女DBA的一次价值连城的系统优化!

[复制链接]
论坛徽章:
0
跳转到指定楼层
1#
发表于 2017-8-4 09:51 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
写在案例分享前
承蒙大家的喜爱,我们会一直做下去!
也希望喜欢技术人生系列的朋友们,顺手帮转发一下,您的转发是我们持续分享的动力

记得端午节和兄弟们喝酒时,有朋友说,“要不,你们成立一个用户组吧,这样更多的朋友可以以一个公益的形式加入到分享的队伍中,也可以从线上分享发展到线下分享,并且可以到各个城市中去做实战分享,让大家可以面对面的交流”;

说的有道理,于是乎,有了CESOUG,即China Experience Sharing Oracle User Group,中文名为中国经验分享Oracle用户组,希望不同城市有兴趣的朋友一起加入进来成为联合创始人(加小y微信shadow-huang-bj私聊),一起推动运维技术的分享氛围!

再然后,有了第一次线下活动的策划,活动主题是欢乐颂,就是喜欢你---ORACLE
这可能将是你参加的最精彩的一次Oracle实战类技术分享大会!

小y将邀请国内顶尖的Oracle实战高手一起分享,堪称史上最强阵容,内容绝对让你爽到爆,2017年首届ORACLE欢乐颂技术大会的分享嘉宾包括:
低调行者小y黄远邦
优化高手老猫陈宏义
技术狂人老K周永康
GCS RAC和Exadata顶尖高手高斌
前GCS首席技术工程师宋日杰
ACS神秘高手
金牌DBA徐戟(白鳝)
数据恢复高手程飞(惜分飞)
中行总行Oracle专家张海滨
工行总行Oracle专家邓强
以及建行总行和农行总行的Oracle专家
还在犹豫什么呢,快快识别图中二维码进行报名吧!
分享预告
你的系统中是否存在间歇性的IO性能问题,或者一直以来都IO性能不佳呢?
文章的最后,将给出共性的风险提示和检查方法,还犹豫什么呢,也查一查您的系统吧^_^。

这次我们分享的主题 --- 看中国最美DBA一次价值连城的系统优化!
通过系统的优化,将某客户一个关键业务系统经常性卡顿和白屏的性能问题彻底解决!
首先让大家提前看一下Oracle数据库优化前后的效果比对图吧,一会再看..
优化前:
优化后:
是的,似乎有人不关心优化效果,而是关心“中国最美女DBA”。
好吧,言归正传,十七期,我们邀请到了中亦科技数据库团队的小仙女--小亦姑娘,为大家做分享上面这个价值连城的系统优化案例!之所以说价值连城,是因为对客户而言,意义重大。案例中知识点很多,精彩不断!

小亦姑娘作为中亦科技数据库团队的新生代90后DBA,成为团队中初级DBA的典型代表,本篇为其处理CASE的代表作!
注意,不要只看照片,文章才是关键!也期待小亦姑娘更多作品^_^
喜欢就转发吧,您的转发是我们持续分享的动力!





临危受命

"小亦,你下午和销售去解决一个潜在客户的性能问题吧。"

原来,一个保险客户,他们的核心系统,数据库是oracle单实例,跑在aix小机上。

业务系统每天都会经常性地出现卡顿和白屏现象,业务部门多次投诉了,现在客户的运维部门压力很大,如果问题继续下去,所有人都会被逼疯的。

这次他们的运维经理,找到中亦科技,希望我们可以出手解决这个问题,问题只要解决了,一切好说。之前找过一些公司,但均未能解决。问题也已经很长时间了。

看上去,客户遇到麻烦了…我,尽力吧!


问题很严重啊

到达客户现场,客户和我简单介绍了下这个系统的情况后,我就迫不及待的取出awr报告!Oracle之所以经久不衰,被客户喜爱,很重要的一个原因是可度量和可调整。

通过OWI就可以轻松了解到系统是否存在瓶颈,无数的接口等着你来控制它。

直接上等待事件,如下所示:

这一看,直接吓了一跳。数据库中这么多异常的等待,怪不得业务系统卡顿了。

可以看到:


Ø  等待事件中Log File Sync平均每次94ms,占整个DB Time的42%;

Ø  log buffer space平均每次952ms,占整个DB Time的20%。

Ø  ORACLE卡住的原因是 logfile写不下去,导致整个数据的commit变慢。

Ø  logbuffer space和buffer busy waits显然是 Log File Sync慢的一个附属结果。


显然因为lgwr写的慢,导致log buffer来不及刷到磁盘,导致log buffer看上去出现“满”了,其他进程不得不等待"log buffer space”,根本原因在于log writer写的慢!

LGWR有多慢
接下来,小亦检查了下lgwr进程的trace:
可以看到

在线日志写入延时最高超过137秒,最后一条记录显示,写入18K,居然需要65秒!真是让人吃惊的结果。这里不得不怀疑存储IO子系统出现了问题!难道这么简单就被小亦解决了? 嘿嘿…


令人失望的沟通

小亦将上述发现和分析方向告诉了客户,结果发现,客户对此并不意外。

听客户说到,之前找到的专业公司也发现了这个问题,然后把问题就甩给他们了,说是IO有性能问题!但是我们多次检查存储阵列、SAN交换机、链路,结果没有任何报错和有用的线索!操作系统也没有任何报错!“如果你们最后也是这个结论,那你们可以回去了!”

有点委屈,中亦又不是只做数据库服务的公司,我们是一站式服务商。小亦一定要证明给他看,我们是不一样的!


错怪了客户

难道是客户水准不够,查不出来存储IO子系统方面的问题?

正犹豫,要不要申请公司的AIX专家和存储专家过来一起排查的时候呢,不如先自己检查检查,等确认存储确实有性能问题后再说吧。

敲下iostat,结果如下所示:

看到这些数据,看来小亦真的错怪客户了!

从操作系统看LUN一级的性能表现,是非常棒的!

服务队列没有满,没有timeout和fail,读写的平均服务时间avgsrv以及最大响应时间maxserv都是非常小的。如果iostat或者sar –d没有性能问题,那么还去找存储阵列查,方向就是错的了!

思考时刻 到这里,读者可以停下来思考一下,如果是你,你会怎么接着往下查,你的怀疑方向有是什么呢?
找到通往天堂的路口

既然lgwr进程写的慢,那么小亦就用truss来获取该进程的系统调用情况吧,如下所示:

可以看到:

lgwr大量地调用aio_nwait_timeout,listio64两个系统call,并且在listio64这个call调用之后,都会有一段时间的停顿。显然,这两个属于AIX系统异步IO的调用。

那么接下来检查异步IO的配置就顺其自然了。检查如下:


# ioo -F -a|grep aio
aio_active = 1
aio_maxreqs =4096   #最大请求数
aio_maxservers = 10     #每个cpu的aio的最大服务数
aio_minservers = 3      #每个cpu的aio的最小服务数

    该系统配置了22 CPU,每颗CPU 最多支持10个AIO SERVER,那么整个系统理论上最大是22*10=220个AIO SERVER.

继续乘胜追击,看看操作系统起了多少个AIO SERVER呢?


# pstat –a |grep -c kproc
320

可以看到,一共起了320个!不只是最大的220.看来,当最大SERVER不够的时候,系统是允许有突破这个限制的!

小亦之后多次持续的检查,发现都是320个,正常而言,AIOSERVER过了一个空闲时间,数量将会降下去,除非一直在工作!

这就对了!小亦看到这,心里已经乐开花了,顾不得女孩子的矜持了。

AIOSERVER不足,导致LGWR没有无用的AIO SERVER,IO压根传递不到LUN一级,因此IO长时间无法完成。


原因总结

可以认为是应用发出太多的IO请求,导致操作系统AIO server不能满足需求,从而导致LGWR写入变得极其缓慢。


再次思考
至此,读者朋友们,不妨停下来,思考下,如果是您来决策,您会怎么调整?Maxserver从10调整到多大呢?20?50?还是……

您的决策可能会影响到优化的效果,效果不好,可能就会影响到客户的信息,毕竟这是客户的关键业务系统啊,不妨停下来,看看小亦的选择。
选择前的确认

为了进一步坐实证据,小亦发出下列命令,获得异步IO不足的情况:

可以看到:

1秒内,最大的异步IO的请求数量都超过2000了,远远超过AIO设置的最大值220,IO写的慢就是必然的了。

解决方案

有了前面的分析,解决起来就简单了!

这个性能问题,我们不调SQL,我们不改数据库参数,我们改操作系统参数!

在征求公司AIX专家和团队三线专家的意见后,小亦给客户提出了以下优化方案:


修改AIO相关参数:将maxserver调大到800,同时修改maxreqs为16384


令人振奋的优化效果

[size=1em]做完操作系统参数调整后,小亦也是无比期待啊,就像自己的孩子一样。

[size=1em]第二天迫不及待给客户去了电话,“截止目前,没有再出现任何系统卡顿和白屏的情况了,实在是太感谢了!这是一次价值连城的优化啊!对业务的健康发展意义重大!你们继续做进一步的优化,商务的事情交给我!”

优化前:
优化后:

经验提示

在AIX操作系统上,如果采用文件系统存放数据库文件,不正确的异步IO配置,会导致IO 出现严重的性能问题。很多客户忽略掉了这一点,并且有可能在持续忍受着糟糕的IO性能而无从下手。

中亦科技建议大家通过下列命令检查或者监控起来,及时作出调整,确保系统运行在最佳性能状态下;


步骤1--获取CPU个数
# vmstat

步骤2—查看异步IO的配置

# ioo -F -a|grep aio
aio_active = 1
aio_maxreqs =4096   #最大请求数
aio_maxservers = 10     #每个cpu的aio的最大服务数
aio_minservers = 3      #每个cpu的aio的最小服务数


步骤3—查看异步IO的maxgc:
如果maxgc长时间处于超过CPU个数*aio_maxservers的状态,则说明IO可能有严重性能问题,需要对异步IO配置做出调整!
如果你想听到更多的实战案例分享,快快来报名参加2017首届Oracle欢乐颂技术大会吧^_^
识别图中二维码进行报名。



打赏鼓励一下!
论坛徽章:
4
优秀写手
日期:2013-12-21 06:00:142014年新春福章
日期:2014-02-18 16:50:09马上有车
日期:2014-02-18 16:50:09秀才
日期:2017-09-18 17:34:25
2#
发表于 2017-8-4 15:26 | 只看该作者
原因定位到了,处理起来也就容易!

使用道具 举报

回复
论坛徽章:
122
现任管理团队成员
日期:2011-05-07 01:45:08
3#
发表于 2017-8-4 20:51 | 只看该作者
文件系统??aix裸设备,asm不用这个参数。既然用小型机为啥要文件系统跑Oracle?

使用道具 举报

回复
论坛徽章:
46
目光如炬
日期:2015-05-25 17:31:392017金鸡报晓
日期:2017-02-08 14:09:13弗兰奇
日期:2017-02-17 10:52:09目光如炬
日期:2017-06-18 22:00:00妮可·罗宾
日期:2018-01-16 16:54:11ITPUB社区OCM联盟徽章
日期:2018-03-07 13:51:55ITPUB18周年纪念章
日期:2018-09-17 10:09:49ITPUB元老
日期:2019-04-09 21:48:17授权会员
日期:2019-04-09 21:50:2519周年集字徽章-19
日期:2020-06-16 21:48:06
4#
发表于 2017-8-5 10:34 | 只看该作者
本帖最后由 lusklusklusk 于 2017-8-5 10:35 编辑

顶顶更健康

使用道具 举报

回复
论坛徽章:
2
2009新春纪念徽章
日期:2009-01-04 14:52:282012新春纪念徽章
日期:2012-01-04 11:54:26
5#
发表于 2017-8-6 15:21 | 只看该作者
N年前处理过同样的问题,病症基本类似,没有大差别,如zergduan所说,当时的环境硬实是文件系统,用了多年的系统,业务还挺重要,至于为啥没有使用裸设备,这是历史原因,不知道。

使用道具 举报

回复
论坛徽章:
122
现任管理团队成员
日期:2011-05-07 01:45:08
6#
发表于 2017-8-6 21:41 | 只看该作者
踩死中石油 发表于 2017-8-6 15:21
N年前处理过同样的问题,病症基本类似,没有大差别,如zergduan所说,当时的环境硬实是文件系统,用了多年 ...

恩,当年用AIX 5L + ORACLE 9i的时候,标准安装文档上就说过这个AIOSERVER的基本配置。从这个案例上看,应该是AIX 6或者7(ioo命令),安装这套oracle数据库责任很大,他根本没有按照标准文档去安装,否则默认的aioserver不应该这么小。
aioserver仅仅对文件系统有效,裸设备的AIO驱动是内核中的,不受这个参数控制
另外碰到这样的io问题,我第一个想法就是至少在redo上放弃文件系统,我当年测试过,就算在AIOSERVER充足,且打开文件系统CIO时,文件系统的IOPS只有裸设备的一半。

所以,建议那些IO有问题的案例,先放弃文件系统~

使用道具 举报

回复
论坛徽章:
122
现任管理团队成员
日期:2011-05-07 01:45:08
7#
发表于 2017-8-6 21:45 | 只看该作者
另外,还有AIX上文件系统的大IO还被LTG控制,AIX5,6,7对于较新的IBM存储和非IBM存储,PV的属性识别都有问题,会导致VG的LTG太小。如果使用文件系统,也会导致IO问题(MBPS过低)~

总之,小型机上最好别用文件系统,既然用了小型机就说明系统比较重要稳定性要求高。文件系统对于ORACLE本就不是一个好的选择~

使用道具 举报

回复
招聘 : 数据库管理员
论坛徽章:
19
2011新春纪念徽章
日期:2011-02-18 11:42:48目光如炬
日期:2017-09-03 22:00:01山治
日期:2016-09-29 21:06:15秀才
日期:2015-10-26 09:55:08射手座
日期:2015-07-19 16:27:41沸羊羊
日期:2015-06-17 14:02:04沸羊羊
日期:2015-05-31 14:22:50暖羊羊
日期:2015-03-24 16:20:262015年新春福章
日期:2015-03-06 11:58:18美羊羊
日期:2015-03-04 14:52:28
8#
发表于 2017-8-7 10:03 | 只看该作者
truss是个好东西哈

使用道具 举报

回复
论坛徽章:
10
咸鸭蛋
日期:2012-05-08 17:24:15秀才
日期:2016-02-18 09:24:30天枰座
日期:2016-01-20 19:29:54天蝎座
日期:2016-01-14 14:30:05秀才
日期:2015-11-30 09:59:23秀才
日期:2015-10-19 15:49:552015年新春福章
日期:2015-03-06 11:58:39慢羊羊
日期:2015-03-04 14:53:33优秀写手
日期:2014-12-17 06:00:16秀才
日期:2016-02-18 10:08:14
9#
发表于 2017-8-7 14:33 | 只看该作者
这标题,现在ORACLE 行业需要靠美女来撑门面了么

使用道具 举报

回复
论坛徽章:
122
现任管理团队成员
日期:2011-05-07 01:45:08
10#
发表于 2017-8-7 17:07 | 只看该作者
huzhichengforce 发表于 2017-8-7 14:33
这标题,现在ORACLE 行业需要靠美女来撑门面了么

ORACLE行业不需要,但是一个公司的业务推广需要,现在是看脸的时代~

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表