因为磁盘io瓶颈导致mysql当机的问题 - Go语言中文社区

因为磁盘io瓶颈导致mysql当机的问题


昨天晚上因为连续重建一些大表(每张表数据量都过一亿),导致其中有一个备库(使用的是普通的sas盘)崩溃,情况如下:




可见是io问题,查看错误号105 ,对应的错误信息为:

OS error code 105:  No buffer space available

原来是缓存不够用,查看缓存的情况:



该服务器上因为多实例部署故该数据库buffer_pool只分配了大概16G的内存,事物写入模式innodb_flush_log_at_trx_commit 设置为2,即写内核buffer具体刷盘取决于系统每秒的调度情况。

故初步判断因为系统每秒刷盘的速度比写入buffer的速度要慢久而久之导致buffer内存不足,而buffer和cache不一样无法进行swap,即最终mysql因为刷盘太慢导致buffer耗尽而崩溃。

关闭一些其他实例,然后重启该数据库,查看系统io情况:




果然磁盘使用率已经达到了饱和,sas盘性能太不给力的问题导致io使用率一直巨高。之后的一些表也不敢重建,等备库追上主库再说吧。

ps : 以上分析仅仅是个人见解,不一定正确仅供参考。


版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/lidan3959/article/details/26156421
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2019-08-26 20:35:39
  • 阅读 ( 1572 )
  • 分类:数据库

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢