Innodb刷脏页技术深度挖掘

volkswageos 2011-01-28 05:07:15
1、问题描述
DBA某数据库集群每日17:00左右会出现一个性能陡降的现象,在10~20秒内主库出现大量慢查询。这些查询本身没有性能问题,也没有任何关联,可以认为是由于数据库系统负载较重,由于并发导致的慢查询。
通过对全日志的梳理,已经查明每日17:00左右导致主库性能下降的问题原因是该时段在执行某定时任务中的一个Update语句。该update语句一次性会对约70万个row进行更新,引发大量数据库写入,是导致数据库性能下降的直接原因。
但是还存在一个疑点,那就是该定时任务每天会执行三次,零点,12点和17点,数据的更新量几乎一致,其中12点和17点均是业务的高峰期,为何只有下午17点会出现大量慢查询,而上午12点数据库受到的影响相对较小,没有出现慢查询呢?


2、监控数据分析
DBA对当时数据库系统的状态进行了分析,12点与17点都存在一个突发的大量数据写入,对比两个时间段的innodb性能参数,可以发现:

(1)两个时间段Innodb log buffer均有一个突发的写入



(2)两个时间段innodb_log file均有一个突发的写入


分析

(1),(2)说明该时间点有一个影响行数较高的突发的写入操作。

(3) 12点时innodb buffer dirty page有一个突增,但17点左右innodb buffer dirty page有一个突降


(4) 12点时innodb的数据文件写入速度维持在一个相对平缓的水平,而17点左右innodb的数据文件写入速度有一个突增。


(5) 12点时系统IO的BI略有增长,但是不大,而17点时BI有非常大的增长,对系统IO性能有很大的影响。


分析

(3),(4)说明该时间点确实有大量数据写入,但是12点左右的时候数据以脏页的形式保存在buffer pool中,而17点的时候脏页被大量写入到磁盘中。通过(5)可以看出12点的时候脏页是在update操作结束后缓缓刷入磁盘,而17点的时候脏页被直接刷入磁盘。可见导致数据库性能陡降的原因就是脏页刷盘,12点的时候性能没有明显相加的原因就是没有突发的脏页刷盘。


因长度受限:http://hi.baidu.com/ops_bd/blog/item/8c111e2d8689733ed52af1b0.html?timeStamp=1296197900962
...全文
203 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
fxs_2008 2011-03-04
  • 打赏
  • 举报
回复
第二cron是性能隐患!
第二个集群据说各个节都有的所有备份!
第三个经常更新表会有碎片,性能下降
mysqldbd 2011-03-03
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 m1234 的回复:]
很好奇,那个图片是啥工具生成的
[/Quote]

我也有疑问,这个图片是用啥工具生成的呢?
M1234 2011-02-14
  • 打赏
  • 举报
回复
很好奇,那个图片是啥工具生成的
mysqldbd 2011-02-10
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 volkswageos 的回复:]
引用 1 楼 jinfengyiye 的回复:

summer!帮顶学习。


这个是公司的技术文章,希望大家看看链接,多多推荐自己的同学应聘
[/Quote]

很好,很不错的文章啊,拜读了!
volkswageos 2011-02-01
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 wxf163 的回复:]

哇。你们公司分析的真细致,喜欢。
[/Quote]

希望推荐自己或是自己的朋友过来
volkswageos 2011-01-30
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 jinfengyiye 的回复:]

summer!帮顶学习。
[/Quote]

这个是公司的技术文章,希望大家看看链接,多多推荐自己的同学应聘
feixianxxx 2011-01-30
  • 打赏
  • 举报
回复
强大啊
王向飞 2011-01-30
  • 打赏
  • 举报
回复
原来你是百度的
王向飞 2011-01-30
  • 打赏
  • 举报
回复
哇。你们公司分析的真细致,喜欢。
shine333 2011-01-29
  • 打赏
  • 举报
回复
iihero_ 2011-01-28
  • 打赏
  • 举报
回复
不错的文章哦。
小小小小周 2011-01-28
  • 打赏
  • 举报
回复
学习;
gw6328 2011-01-28
  • 打赏
  • 举报
回复
summer!帮顶学习。

56,677

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧