遇到liunx服务器IO负载,读IO流量峰值347MB/s,排查并解决。 ...

打印 上一主题 下一主题

主题 851|帖子 851|积分 2553

媒介:

根据监控报警看到IO读的速度为347MB/s。

统计时间区段 统计时长 IOPS IO流量 状态

1 工作日上班时间段:08:00-18:00 1小时平均值 >2000 >200 MB/s 异常
4小时平均值 >1500 >150 MB/s 异常
8小时平均值 >1000 >100 MB/s 异常
连续7天 >500 >50 MB/s 异常
2 工作日非上班时段:18:00-08:00 1小时平均值 >4000 >300 MB/s 异常
4小时平均值 >3000 >200 MB/s 异常
12小时平均值 >2000 >100 MB/s 异常
连续7天 >1000 >80 MB/s 异常
通过iostat、iotop、top、vmstat 、pidstat命令排查
查看磁盘 I/O 团体情况
  1. iostat -x 1 10
  2. 参数解释:-x 表示显示详细信息;1 表示每隔 1 秒输出一次数据;10 表示总共输出 10 次。
  3. 关键指标分析:关注 %util(设备利用率)、r/s(每秒读取次数)、w/s(每秒写入次数)、r_await(读请求平均等待时间)、w_await(写请求平均等待时间)等指标。若 %util 接近或达到 100%,说明磁盘设备繁忙;r_await 和 w_await 数值高则表示 I/O 请求等待时间长。
复制代码
可报告捏造内存统计信息,也能显示磁盘 I/O 情况。
  1. vmstat
  2. 参数解释:每隔 1 秒输出一次数据。
复制代码
定位高 I/O 历程
  1. iotop
  2. 使用方法:直接运行该命令后,会按 I/O 使用率降序显示进程信息。可以看到每个进程的读写速率、累计读写数据量等信息,从而快速定位产生大量 I/O 的进程。
复制代码
用于监控指定历程或所有历程的 I/O 统计信息。
  1. pidstat -d 1
  2. 参数解释:-d 表示显示 I/O 统计信息;1 表示每隔 1 秒输出一次数据。
复制代码
1、通过iotop命令看出mysql查看历程占用cpu和free利用率高;
2、利用iostat命令查看出mysql这个历程占用io比力高;
3、然后登陆mysql 执行这条sql语句查看是否有锁表的show full processlist;(查看有两个查询语句卡死在那了,直接利用kill 杀掉,但是过一会儿还是没有正常。)
4、通过SHOW OPEN TABLES WHERE In_use > 0; 这条sql语句进行查询返回1的表名说明正在锁表不能对这张表进行操纵,查看出一张表正在锁表,然后查看这是一张日志表数据比力大,没有效的垃圾数据进行清算掉了。
5、清算完日志表进行查看是否还有锁表的,发现没有锁表的了。于是加了一个定时使命,每天清算这张日志表的垃圾数据。
6、此服务器只部署了mysql,以是第一时间就定位到了mysql。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

瑞星

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表