mysql数据库磁盘io使用高,请问如何进行排查?

通过系统能确定是数据库的io读写高,有哪些系统表或者sql联合起来可以把关键的sql定位出来?显示全部

通过系统能确定是数据库的io读写高,

有哪些系统表或者sql联合起来可以把关键的sql定位出来?

收起
参与7

返回Acdante的回答

AcdanteAcdante技术总监SHFY

mysql5.7版本为例,结合performance_schema来查看MySQL数据库的各种指标。相当于Oracle数据库中的各种性能视图,可以查看几乎所有的数据库状态。
IO的话,可以查看这张表:

performance_schema.file_instances:列出了文件I / O操作及其相关文件的工具实例

排查思路:
1、慢SQL排除
2、硬件问题-RAID降级,磁盘故障等排除
2、innodb_log、innodb_buffer_pool_wait相关配置和等待
3、IO相关参数配置
innodb_flush_method = O_DIRECT
innodb_file_per_table = 1
innodb_doublewrite = 1
delay_key_write
innodb_read_io_threads
innodb_read_io_threads
innodb_io_capacity
innodb_flush_neighbors

sync_binlog

主要关注:sync_binlog

建议:最好部署相关的监控平台或者对比历史性能记录,结合业务以及负载来分析。

互联网服务 · 2019-05-25

回答者

Acdante
Acdante111745
技术总监SHFY
擅长领域: 存储服务器数据库

Acdante 最近回答过的问题

回答状态

  • 发布时间:2019-05-25
  • 关注会员:2 人
  • 回答浏览:2762
  • X社区推广