这几天,运营那边老报app卡顿,大量5**报错。通过排查,是mysql数据库卡住了,从数据库错误日志看,有大量如下信息:
mysql数据库错误日志
企图修改数据库选项文件/etc/my.cnf相关的值,来消除问题,效果甚微,修改的两项如下:
interactive_timeout=120
connect_timeout=120
接着看系统的负载,用top指令,输出如下:
系统负载情况
Load飙升,IO也很异常。查mysql的连接数,登录mysql,用指令 “show processlist;”查看,峰值在300个左右,远低于设定值3000.
磁盘io为啥会这么高呢?莫非是磁盘性能问题?数据库由一主两从组成,数据存放在单独的高效云盘。还是来测一下所谓高效云盘的读取性能,然后与自有的物理服务器做过对比。
测试磁盘性能我选用hdparm,最小安装的centos 7可能没有这个包,执行指令“yum install hdparm”很容易就安装上了。
系统磁盘挂接情况
云主机磁盘
测试本地盘读取性能
才100M左右的速度
速度是103M每秒,多测几次,减少偏差。
高效云盘读取性能测试
高效云盘
读取速度130M每秒的样子,感觉这个速度不是很理想。找一台自有的线上物理服务器进行对比测试,sas盘,15000转容量为600G的系统。
² 物理机磁盘状况
两块物理磁盘
物理机系统磁盘读取测试
系统盘
平均400M每秒钟。
物理机数据盘读取测试
数据磁盘
每秒钟读取速度390M。
所谓高效云盘,才100多M每秒,差距好大呢!再试试高效云盘加缓存方式的读取,得到如下的输出:
缓存方式读取
由此可以大致推断,所谓的高效云盘,很可能是sata垃圾盘,前边加ssd缓存,我呸!!
领取专属 10元无门槛券
私享最新 技术干货