技术头条 - 一个快速在微博传播文章的方式     搜索本站
您现在的位置首页 --> 系统运维 --> MySQL服务器raid卡充放电导致的问题

MySQL服务器raid卡充放电导致的问题

浏览:2592次  出处信息

     这是昨天一台mysql库出现的问题,load比平时高了几倍,show processlist也有大量active的会话,数据库响应应用端请求较慢。

    

    查看innodb status row operations部份:

    

 

    因为mysql数据库服务器raid卡充放电,由write back模式变成write through,写IO性能下降,由于innodb内部采用共享线程的模式,写将innodb内部允许的最大并发线程数撑满,导致前端大量的select查询也无法进行,上图中看到有902个查询进入队列。

    

    与上图中的16 queries inside InnoDB刚好稳合。

    淘宝大多数应用场景都是读多写少,当时通过top看到iowait并不多,刚开始想到的一个解决办法:

      我们是否能也将innodb内部的线程进行分组,独立的写线程组,独立的读线程组?

    后来跟同事的讨论中,发现了更多的细节,当raid卡由write back模式,变成write though模式时,写已经将磁盘IO能力耗尽,把读线程独立出来,也不能解决这个问题,读也会很慢。请看下面的监控图示:

    磁盘利用率:

    

    在OS层面监控到的io响应时间:

    

    如果真要独立,那得把写线程控制在一个比较低的水平,分得越细,应对波动时,可共享的资源少了,也是一种坏处。对于底层存储系统,好像没有太大的必要这样做。

    但随着SSD,Fusion-io硬件的引入或使用,innodb io线程增加,innodb_thread_concurrency等参数的调整是一个必然。

    对于使用了raid卡的服务器,大家是怎么解决这个问题呢?

建议继续学习:

  1. RAID磁盘阵列学习笔记    (阅读:6019)
  2. MegaCli 学习 及R710 可选Raid卡分类    (阅读:2666)
  3. 数据的存储介质-磁盘的RAID    (阅读:2534)
  4. Oracle数据恢复:格式化,Raid损坏,文件覆盖恢复    (阅读:2348)
  5. t3sas raid卡驱动安装    (阅读:2166)
  6. 数据的存储介质-磁盘的RAID    (阅读:2155)
  7. Raid1+0 stripe size for MySQL InnoDB    (阅读:2094)
  8. 查看Raid信息    (阅读:2044)
  9. RAID卡MTRR的RAID模式write-combining    (阅读:2024)
  10. DBA的亲们应该知道的RAID卡知识    (阅读:1997)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
© 2009 - 2024 by blogread.cn 微博:@IT技术博客大学习

京ICP备15002552号-1