今日 zabbix 报警磁盘IO利用率达到90%。
又激动又担心,很久没处理故障啦,这次的故障应该很快会修复吧。。。
首先查看磁盘基本情况:
iostat -x 1
avg-cpu: %user %nice %system %iowait %steal %idle 1.57 0.00 2.75 37.65 0.00 58.04 Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util vda 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 vdb 0.00 10.00 0.00 19.00 0.00 2240.00 235.79 1.91 104.21 0.00 104.21 52.21 99.20 avg-cpu: %user %nice %system %iowait %steal %idle 2.84 0.00 1.75 20.09 0.00 75.33 Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util vda 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 vdb 0.00 4.00 0.00 102.00 0.00 1832.00 35.92 5.03 47.37 0.00 47.37 9.80 100.00 avg-cpu: %user %nice %system %iowait %steal %idle 1.92 0.00 2.24 30.13 0.00 65.71 Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util vda 0.00 0.00 0.00 9.00 0.00 36.00 8.00 0.00 0.00 0.00 0.00 0.00 0.00 vdb 0.00 17.00 1.00 31.00 4.00 1596.00 100.00 2.38 54.75 72.00 54.19 30.75 98.40 avg-cpu: %user %nice %system %iowait %steal %idle 0.35 0.00 0.35 30.56 0.00 68.75 Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util vda 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 vdb 0.00 0.00 0.00 24.00 0.00 304.00 25.33 2.46 133.83 0.00 133.83 41.67 100.00
CPU iowait 达到 20%左右, IO利用率 几乎全部100%。
首选确定没有新的功能上线,
SQL都是审核过的,
查看show processlist 语句大多处于 updating 状态。
iotop 查看 具体进程的情况:
(Iotop 使用 Python 语言编写而成,要求 Python 2.5(及以上版本)和 Linux kernel 2.6.20(及以上版本))
817 be/3 root 0.00 B/s 0.00 B/s 0.00 % 43.37 % [jbd2/vdb-8] 14841 be/4 mysql 0.00 B/s 1971.36 K/s 0.00 % 37.46 % mysqld --defaults-file=/usr/local/mysql/mysql.cnf --basedir=/usr/local/mysql/ --datadir=~sr/local/mysql/data//10-4-7-99.pid --socket=/usr/local/mysql/data/mysql.sock --port=3306 21497 be/4 mysql 0.00 B/s 0.00 B/s 0.00 % 7.27 % mysqld --defaults-file=/usr/local/mysql/mysql.cnf --basedir=/usr/local/mysql/ --datadir=~sr/local/mysql/data//10-4-7-99.pid --socket=/usr/local/mysql/data/mysql.sock --port=3306 14837 be/4 mysql 0.00 B/s 231.02 K/s 0.00 % 0.00 % mysqld --defaults-file=/usr/local/mysql/mysql.cnf --basedir=/usr/local/mysql/ --datadir=~sr/local/mysql/data//10-4-7-99.pid --socket=/usr/local/mysql/data/mysql.sock --port=3306 14832 be/4 mysql 0.00 B/s 261.82 K/s 0.00 % 0.00 % mysqld --defaults-file=/usr/local/mysql/mysql.cnf --basedir=/usr/local/mysql/ --datadir=~sr/local/mysql/data//10-4-7-99.pid --socket=/usr/local/mysql/data/mysql.sock --port=3306
可以确定 问题出在操作系统上,
我们使用的云主机,jdb2进程 应该交给云平台服务商来处理啦。
结果问题是:我们多个DB是存在于同一个母机上,IO竞争比较严重。。哎可恶的云计算,
云中的mysql 可以参考这边文章,http://weipengfei.blog.51cto.com/1511707/1060212
但高兴的是 可以将DB分至其他母机。
本文转自 位鹏飞 51CTO博客,原文链接:http://blog.51cto.com/weipengfei/1124199,如需转载请自行联系原作者