io vivado 怎么查看ps_一次诡异的磁盘IO使用率高排查

问题描述

前段时间,一个Mysql数据库服务器磁盘IO写操作非常高,经过排查,发现是mysql线程导致的,磁盘读写情况,如下图所示bbd4f091da5d1d72ca59c381974b1f0b.png

从上图可以看到磁盘IO已经达到6.77M/S,mysql的版本是5.6,这个版本还没有performance_schema.threads视图的THREAD_OS_ID字段,没办法将操作系统的thread_id和mysql数据库线程id进行关联,不能精确定位是mysql那个线程产生的磁盘IO写操作。

排查过程

于是登录mysql数据库,临时开始Mysql数据库的general_log,查看日志记录,也没有发现什么特殊操作e1ece0d0aea02b6d21b288f23f5a3c56.png

这就很诡异了,到底是什么原因呢,只能祭出终极武器perf了,看看此时mysql数据库什么函数操作占用资源最多。

[root@mysql ~]# ps -ef|grep -i mysqldmysql     11650      1  0 8月29 ?        00:00:00 /bin/sh /data/mysql/bin/mysqld_safe --defaults-file=/data/mysql/mysql/conf/3308/my.cnfmysql     12694  11650  2 8月29 ?        00:59:29 /data/mysql/bin/mysqld --defaults-file=/data/mysql/mysql/conf/3308/my.cnf --basedir=/data/mysql --datadir=/data/mysql/mysql/data/3308 --plugin-dir=/data/mysql/lib/plugin --log-error=/data/mysql/mysql/log/3308/error.log --open-files-limit=65535 --pid-file=/data/mysql/mysql/run/3308/mysql.pid --socket=/data/mysql/mysql/run/3308/mysql.sock --port=3308root      49777  49737  0 15:58 pts/0    00:00:00 grep --color=auto -i mysqld[root@mysql ~]# [root@mysql ~]# [root@mysql ~]# perf top -p 12694

观察结果如下图所示d729ead0fc92142e8f4a67ed7b846931.png

从图中可以看到,buf_calc_page_new_checksum 函数操作占用的资源最多。

buf_calc_page_new_checksum

那么buf_calc_page_new_checksum 这个函数到底是做什么的呢?
在mysql刷盘时,会调用这个函数,这个函数的作用是checksum,并写入页中。,其调用顺序如下所示

buf_flush_page-->buf_flush_write_block_low-->buf_flush_init_for_writing-->buf_calc_page_new_checksum

问题原因

从上面可以看出,是Mysql数据库在做刷脏页操作,导致磁盘的IO写操作特别高,这也是为什么在general_log看不出什么特殊操作的原因。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值