免费《新手做网站视频教程》,在线观看,如果你想从零开始自己做网站,点击开始吧!

MySQL数据库(InnoDB存储引擎)I/O占用过高处理方法

  1. 首页
  2. »
  3. 图文教程
  4. »
  5. 网站服务器教程
  6. »
  7. MySQL数据库(InnoDB存储引擎)I/O占用过高处理方法

文章目录

一.检查确认占用I/O高的进程

Windows

1.打开任务管理器查看较占资源的进程。

2.资源监视器-磁盘-按读、写排序进一步核查:

Linux

1.运行top命令查看较占资源的进程。

参数:78.2%wa :数值较高,表示CPU出现严重硬件I/O等待问题,通常就是读写磁盘 I/O 造成的。

2.使用iotop命令进一步核查

[root@ebs-xxx ~]# iotop -o # 仅显示占用I/O的进程
# 如提示未安装iotop,运行以下命令进行安装:
[root@ebs-xxx ~]# yum install -y iotop

二.解决MySQL IO过高方法 - 优化innodb引擎数据表的配置

修改MySQL 配置文件调整或添加以下参数就能解决MySQL 占用I/O资源的问题:

innodb_flush_log_at_trx_commit = 2 #保存后重启mysql服务

特别注意:

  1. 该解决方案主要针对数据库表存储类型为:InnoDB 有效。
  2.  innodb_flush_log_at_trx_commit=2 会牺牲一定的的数据安全性。如果对数据安全性,可靠性有较高要求的,如支付类、金融类、较大的订单系统类等建议不要调整。
  3. 对于高数据安全性且对于IO需求较高(平均读写io大于100 iops)的应用,建议考虑使用云主机的SSD硬盘,SSD硬盘能提供较高的IO性能。否则IO可能成为影响性能的瓶颈。

补充资料:有关 innodb_flush_log_at_trx_commit 参数是什么

innodb_flush_log_at_trx_commit和sync_binlog参数详解_云数据库 RDS_最佳实践_RDS for MySQL_华为云 (huaweicloud.com)

(54条消息) MySQL 重要参数 innodb_flush_log_at_trx_commit 和 sync_binlog_yyyiue的博客-CSDN博客

innodb_flush_log_at_trx_commit and sync_binlog - 知乎 (zhihu.com)

推荐阅读

联系我