Linux系统 磁盘IO过高排查总结
最近做的一个电商网站因为磁盘 I/O 过高导致访问速度奇慢,问题存在两个月有余未得到解决办法。此次排查原因的经验可以作下次问题的参考。
1、会看懂 top 系统命令出来的各项参数。此次是无意中发现 us% 正常,但是 wa% 很高,才得知是系统磁盘的 I/O 过高导致网站访问慢。
2、会安装和使用监控应用。iotop、pt-ioprofile等工具,都是有助于分析问题所在的应用。借助这些工具,最终定位是MySQL的原因。
3、会用MySQL常用的分析命令。一开始认为分配给MySQL的内存不够,一直在调试MySQL的参数以期可以改善I/O,但是发现这个方向是错误的。
(1)应该先使用 "show processlist",查看MySQL中有哪些线程在跑,最明显要注意哪些sql语句跑了很久还没执行完,"Time"那一列的单位是秒(s),所以这一列的数字上了30都是挺大的性能问题,要关注慢查询了。正是用这个命令,发现了一条sql语句经常执行了几百上千秒还没结束,而且一旦开始执行,I/O就非常高,一旦kill掉这个线程,I/O马上恢复正常,问题的症结就找到了。
(2)还有一个是 "show engine innodb status \G",这个输出的数据是归纳数据库引擎的运行情况的数据,结合上面的命令会更有参考价值。比如死锁(deadlock),因为磁盘 I/O 过高,sql语句很长时间执行不完,会造成数据发生死锁(大概是这么理解)。
(3)MySQL的参数优化也是需要的,安装好的MySQL配置都是默认的,效率比较低,不过这次的问题跟优化没有必然联系,因为之前的项目都没有优化过MySQL。
参考文章:https://blog.csdn.net/zimeng0/article/details/68066146
jdb2导致的IO率过高
http://www.bubuko.com/infodetail-971804.html
https://serverfault.com/questions/363355/io-wait-causing-so-much-slowdown-ext4-jdb2-at-99-io-during-mysql-commit
什么导致MySQL数据库服务器磁盘I/O高?
http://www.xtrdb.net/mysql/MySQL-io-%E8%B0%83%E4%BC%98/
MySQL InnoDB磁盘I/O优化
http://www.ywnds.com/?p=9452
查看磁盘的文件系统
https://blog.csdn.net/lzjsqn/article/details/72059035
IO负载高的来源定位
https://www.cnblogs.com/legendbaby/p/5056967.html
拥有相似问题的解决方案
https://www.jianshu.com/p/36151e44b671
MySQL · 特性分析 · (deleted) 临时空间
http://mysql.taobao.org/monthly/2018/04/08/
Linux系统 磁盘IO过高排查总结的更多相关文章
- 磁盘IO过高时的处理办法 针对系统中磁盘IO负载过高的指导性操作
磁盘IO过高时的处理办法 针对系统中磁盘IO负载过高的指导性操作 主要命令:echo deadline > /sys/block/sda/queue/scheduler 注:以下的内容仅是提供参 ...
- linux 系统磁盘管理体系
目录 linux 系统磁盘管理体系 一.磁盘的基本概念 二.磁盘的内部结构 三.磁盘的外部结构 四.磁盘的接口及类型 五.fdisk磁盘分区实践 六.gdisk 分区 七.parted 高级分区工具. ...
- win10系统磁盘占用率高的解决方法,占用100%的问题
win10系统开机后明明什么都没做,磁盘占用率却只见飙升到了100%,出现这种情况是win10自带的服务导致的.下面的方法可以解决win10系统磁盘占用率高问题. 1.按下Win+R,然后输入serv ...
- Linux系统磁盘分区、删除分区、格式化、挂载、卸载、开机自动挂载的方法总结
Linux系统按照MBR(Master Boot Record)传统分区模式: 注意:传统的MBR(Master Boot Record)分区方式最大只能分2T容量的硬盘,超过2T的硬盘一般采用GPT ...
- linux 系统磁盘管理(主分区和逻辑分区)
摘要:linux系统磁盘管理主分区和逻辑分区 1.linux系统分区应了解的常识 硬盘分区实质上是对硬盘的一种格式化,然后才能使用硬盘保存各种信息,在创建分区时,就已经设置好了硬盘的各项物理参数,指定 ...
- linux 磁盘io利用率高,分析的正确姿势
一.背景简介 作为一个DBA难免不了会遇到性能问题,那么我们遇到性能问题该如何进行排查呢?例如我们在高并发的业务下,出现业务响应慢,处理时间长我们又该如何入手进行排查,本片文章将分析io高的情况下如何 ...
- Linux 查看磁盘IO并找出占用IO读写很高的进程
背景-线上告警 线上一台服务器告警,磁盘利用率 disk.util > 90,并持续告警. 登录该服务器后通过 iostat -x 1 10 查看了相关磁盘使用信息.相关截图如下: # 如果没有 ...
- linux查看磁盘io的几种方法
怎样才能快速的定位到并发高是由于磁盘io开销大呢?可以通过三种方式: 第一种:用 top 命令 中的cpu 信息观察 Top可以看到的cpu信息有: Tasks: 29 total, 1 runnin ...
- 磁盘IO过高时的处理办法
针对系统中磁盘IO负载过高的指导性操作 主要命令:echo deadline > /sys/block/sda/queue/scheduler 注:以下的内容仅是提供参考,如果磁盘IO确实比较大 ...
随机推荐
- mysql视图、存储过程等
视图: 需求: 创建的临时表(select * from tb1)被反复使用,这时可以为该临时表创建视图.视图相当于为某个查询创建了别名. 1.创建视图 create view v1 as selec ...
- Python初始环境搭建和Pycharm的安装
首先我们来安装python 1.首先进入网站下载:点击打开链接(或自己输入网址https://www.python.org/downloads/),进入之后如下图,选择图中红色圈中区域进行下载.
- spark-sql jdbc操作mysql
SparkConf sparkConf = new SparkConf() .setMaster("local") .setAppName("MySqlTest" ...
- /etc/inittab文件详解
/etc/inittab由/sbin/init程序解析调用,用于系统初始化,/sbin/init可参考源码busybox中init.c的实现方式. 原址如下: http://leejia.blog.5 ...
- 允许浏览器下载exe.config文件
进入系统目录 %windir%\System32\inetsrv\config\ 编辑IIS配置文件 applicationHost.config 找到如下行 <requestFiltering ...
- 接口测试工具-Jmeter使用笔记(八:模拟OAuth2.0协议简化模式的请求)
背景 博主的主要工作是测试API,目前已经用Jmeter+Jenkins实现了项目中的接口自动化测试流程.但是马上要接手的项目,API应用的是OAuth2.0协议授权,并且采用的是简化模式(impli ...
- 学号20175313 《实现Linux下od -tx -tc XXX的功能》第九周
目录 MyOD 一.题目要求 二.题目理解 三.需求分析 四.设计思路 五.代码链接 六.代码实现过程中遇到的问题 七.运行结果截图 八.参考资料 MyOD 一.题目要求 编写MyOD.java 用j ...
- 【Git】修改git远程连接ip
- 【QT】Pycharm add QT Desinger
1. https://www.cnblogs.com/dalanjing/p/6978373.html -m PyQt5.uic.pyuic $FileName$ -o $FileNameWitho ...
- 六、latex中的特殊字符