美国服务器MySql数据库(InnoDB存储类型)占用I/O资源高处理

已关闭留言

该解决方案以美国服务器为例,主要针对数据库表存储类型为:InnoDB 有效。innodb_flush_log_at_trx_commit=2 会牺牲一定的的数据安全性。如果对数据安全性,可靠性有较高要求的,如支付类、金融类、较大的订单系统类等建议不要调整。

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

Windows

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

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

美国服务器MySql数据库(InnoDB存储类型)占用I/O资源高处理插图

Linux

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

美国服务器MySql数据库(InnoDB存储类型)占用I/O资源高处理插图1

参数: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数据库(InnoDB存储类型)占用I/O资源高处理插图2

二.优化innodb格式表数据库的配置

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

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