现象

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

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

排查过程

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

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

[root@mysql ~]# ps -ef|grep -i mysqldmysql     11650      1  0 8月29 ?        00:00:00 /bin/sh /data/mysql-8.0.21/bin/mysqld_safe --defaults-file=/data/mysql/mysql8/conf/3308/my.cnfmysql     12694  11650  2 8月29 ?        00:59:29 /data/mysql-8.0.21/bin/mysqld --defaults-file=/data/mysql/mysql8/conf/3308/my.cnf --basedir=/data/mysql-8.0.21 --datadir=/data/mysql/mysql8/data/3308 --plugin-dir=/data/mysql-8.0.21/lib/plugin --log-error=/data/mysql/mysql8/log/3308/error.log --open-files-limit=65535 --pid-file=/data/mysql/mysql8/run/3308/mysql.pid --socket=/data/mysql/mysql8/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

观察结果如下图所示

原因

从图中可以看到,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看不出什么特殊操作的原因。

喜欢的朋友,可以添加关注

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

  1. io vivado 怎么查看ps_基于Vivado的嵌入式开发 ——PS+PL实践

    基于Vivado的嵌入式开发 --PS走起 硬件平台:ZedBoard 开发工具:Vivado 2014.2 1.规划 废话不多说,依然是流水灯,这次是采用PS+PL实现. 功能依旧简单,目标是为了学 ...

  2. linux mysql io压力大_MySQL性能调优(四) Linux 磁盘IO

    1. IO处理过程 磁盘IO经常会成为系统的一个瓶颈,特别是对于运行数据库的系统而言.数据从磁盘读取到内存,在到CPU缓存和寄存器,然后进行处理,最后写回磁盘,中间要经过很多的过程,下图是一个以wri ...

  3. io vivado 怎么查看ps_ZYNQ 7020学习笔记之PL侧普通信号中断PS的实验

    1.参考 UG585 网络笔记 2.理论知识 见中断部分 3.实验目的 练习使用PL侧的普通信号来中断PS处理器. 4.实验过程 建立工程,设置并初始化串口中断,在运行程序之后,如果串口接收到N(1- ...

  4. io vivado 怎么查看ps_vivado学习之PS与PL通信

    刚开始学习PS与PL通信的时候,总是理解的不透彻,只能跟书上或者网上的教程学习,但是也只是照猫画虎.直到看了这篇博文: http://xilinx.eetop.cn/viewnews-2547  这个 ...

  5. 集群瓶颈为什么是磁盘io

    阅读本文思考: 1.对磁盘IO了解多少 2.为什么是磁盘IO是瓶颈,有没有自己的答案 想了解磁盘io可以查看此帖:集群瓶颈:磁盘IO必读 (磁盘IO:磁盘输出输出) 集群的瓶颈提出多种看法,其中网络和 ...

  6. 测试服务器磁盘io性能,测试磁盘IO瓶颈

    一.简介 由于最近压测kafka的吞吐量,发现优化kafka的时候并没有提升吞吐量.所以怀疑是服务器本身的瓶颈.于是做了服务器的IO瓶颈测试. 硬盘位正常SATA磁盘,做的raid1. 二.测试 1. ...

  7. linux限制磁盘io,使用cgroups管理Linux磁盘io的方法

    我们都知道Linux系统中的cgroups可用于管理cpu资源,今天小编要给大家介绍的是如何使用cgroups管理进程磁盘io,如果你对此感兴趣的话,不妨来了解下吧. 这个功能通过 blkio 子系统 ...

  8. linux系统资源分析 - 磁盘IO篇

    目录 一.理解磁盘IO 二.普通文件IO调度 三.磁盘阵列 四.常用命令 4.1 iostat命令详解 五.综合案例(内存&IO) 一.理解磁盘IO 以超市结账为例,来理解磁盘IO的队列情况( ...

  9. day28:检测磁盘io|自定义时段查看tomcat 日记|打印城市名字|代码上线|统计网站并发量...

    2019独角兽企业重金招聘Python工程师标准>>> 1.有一台阿里云的机器,接到反映说服务器的磁盘 io 很高,登录服务器查看,并没有发现问题,怀疑是间歇性的,看到造成磁盘 io ...

  10. Linux查看哪些进程占用较多的cpu、内存和磁盘IO的方法

    linux 查看哪个进程占用CPU和内存 1.ps aux | grep mysql 用这个方法找到进程号 如下:找到mysql的进程号是1651 [root@vm254 ~]# ps aux |gr ...

最新文章

  1. c/c++中的const
  2. NSURLErrorRelatedURLSessionTaskErrorKey
  3. MySQL-体系结构以及常用存储引擎MyISAM和InnoDB初探
  4. 移动APP接口安全性设计
  5. 优化案例(part8)--Robust Recovery of Subspace Structures by Low-Rank Representation
  6. MySQL松散索引扫描与紧凑索引扫描
  7. Uediter的引用和取值
  8. 深入解析Node.js setTimeout方法的执行过程
  9. 华为注册鸿蒙商标与三海经,华为注册了一本《山海经》?除了鸿蒙商标,还有很多...
  10. 怎么设置internet才能下载JAVA_如何使用Java从Internet下载和保存文件?
  11. CACTI实现飞信报警
  12. 飞步神速!何晓飞团队完成无人车深度学习芯片流片,算力创国内新高
  13. Windows下调试hadoop
  14. mysql 开启用户远程登录
  15. Ubuntu打印到pdf文件
  16. C语言实现简单的小游戏之三子棋
  17. 塑造棋牌游戏文化内涵
  18. 二代旅游CMS网站管理系统使用手册(三)--计调线路团期录入
  19. 快递鸟电子面单打印接口demo-可返回电子面单模板
  20. 分布式并行计算:概述

热门文章

  1. java类型的对象可以存储属性_重识JVM(一)-类与对象在JVM中是如何存储的
  2. linux cat 文件合并,linux cat两个文件是肿么合并的
  3. 增加小球python,python实现弹跳小球
  4. 未能加载文件或程序集“AjaxControlToolkit”或它的某一个依赖项
  5. Windows Azure Cloud Service (25) 使用Startup注册COM组件(下)
  6. Waymo已经开始绘制亚特兰大地图数据,自动驾驶汽车路测地点又添新城
  7. MYSQL——数据修改
  8. Know Difference between Oracle Reserved Words and Keywords
  9. Django__WSGI
  10. 开发者的实用 Vim 插件(二)