MySQL服务器raid卡充放电导致的问题
浏览:3259次 出处信息
这是昨天一台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卡的服务器,大家是怎么解决这个问题呢?
建议继续学习:
- RAID磁盘阵列学习笔记 (阅读:6852)
- MegaCli 学习 及R710 可选Raid卡分类 (阅读:3583)
- 数据的存储介质-磁盘的RAID (阅读:3344)
- Oracle数据恢复:格式化,Raid损坏,文件覆盖恢复 (阅读:2945)
- 数据的存储介质-磁盘的RAID (阅读:2996)
- t3sas raid卡驱动安装 (阅读:2931)
- RAID卡MTRR的RAID模式write-combining (阅读:2784)
- Raid1+0 stripe size for MySQL InnoDB (阅读:2855)
- CISSP知识点解析系列:RAID (阅读:2727)
- 查看Raid信息 (阅读:2606)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
扫一扫订阅我的微信号:IT技术博客大学习
<< 前一篇:cacti监控华为交换机不显示端口解决
后一篇:使用DNSPod来处理网站的均衡负载 >>
文章信息
- 作者:Data Architecture DBA 来源: Data & Architecture DBA
- 标签: raid
- 发布时间:2010-09-26 22:24:02
建议继续学习
近3天十大热文
-
[869] WordPress插件开发 -- 在插件使用 -
[136] 解决 nginx 反向代理网页首尾出现神秘字 -
[57] 整理了一份招PHP高级工程师的面试题 -
[56] 分享一个JQUERY颜色选择插件 -
[54] 用 Jquery 模拟 select -
[54] 如何保证一个程序在单台服务器上只有唯一实例( -
[54] CloudSMS:免费匿名的云短信 -
[53] Innodb分表太多或者表分区太多,会导致内 -
[53] 全站换域名时利用nginx和javascri -
[51] jQuery性能优化指南
