【问题标题】:mysql disk I/O 100%mysql 磁盘 I/O 100%
【发布时间】:2019-12-07 11:54:42
【问题描述】:

MySQL 数据库显示磁盘 i/o 利用率持续保持在 100% 左右。数据库服务器有 24 GB 内存。

我们尝试优化查询,但效果不佳。

请检查当前配置参数如下:

  • 参数 当前值
  • key_buffer_size 536.88 MB
  • query_cache_size 268.43 MB
  • tmp_table_size 40368.70 MB
  • innodb_buffer_pool_size 12884.90 MB
  • innodb_additional_mem_pool_size 8.4MB
  • innodb_log_buffer_size 134.22 MB
  • max_connections 6000
  • sort_buffer_size 8.38

  • read_buffer_size 8.38 MB

  • read_rnd_buffer_size 8.38 MB
  • join_buffer_size 0.26 MB
  • thread_stack 0.26 MB
  • binlog_cache_size 0.03 MB

如果您发现当前配置有任何问题,请提出建议。

【问题讨论】:

  • 安装 MySQL Workbench。 “性能报告”选项卡将为您提供所需的任何详细信息,尤其是“高成本 sql 语句”和“数据库模式(索引)统计信息”。你也尝试过使用this one 之类的工具吗?
  • 请发布 SHOW GLOBAL STATUS LIKE '%used%' 的结果;用于分析,以及 MySQLTuner.pl (perl) 脚本请求的完整文本结果。
  • @Avadhut Pisal 您是否实施了这些建议?请评论结果 - 正面/负面 - 没有尝试过。请发布 SHOW GLOBAL STATUS LIKE '%used%' 的结果;用于分析,以及 MySQLTuner.pl (perl) 脚本请求的完整文本结果。仅当您需要其他性能增强建议时才发布。

标签: mysql database innodb


【解决方案1】:

Rate Per Second=RPS - 为您的 my.cnf(或 my.ini)[mysqld] 部分考虑的建议

query_cache_size=50M  # from 268M to reduce CPU cycles used in management of QC
tmp_table_size=256M  # from 40G for ~ 1% of RAM a reasonable limit
max_heap_table_size=256M  # to match size of tmp_table_size, using 1% of RAM
sort_buffer_size=1M  # from 8M allocated per connection - next 2 are per connect also
read_buffer_size=256K  # from 8M to reduce volume of data retrieved by 95%
read_rnd_buffer_size=256K  # from 8M to reduce volume of data retrieved by 95%

在实例的 1 次停止/启动时全部应用。请在正常工作日正常运行 24 小时后发布 cmet 的阳性/阴性结果。

【讨论】:

  • @Avadhut Pisal 您是否实施了这些建议?请评论结果 - 正面/负面 - 没有尝试过。请发布 SHOW GLOBAL STATUS LIKE '%used%' 的结果;用于分析,以及 MySQLTuner.pl (perl) 脚本请求的完整文本结果。谢谢
【解决方案2】:

疯狂交换!!

不要盲目地增加可调参数。回到默认值,除了一个:

innodb_buffer_pool_size

将其设置为可用 RAM 的 70% 左右。

【讨论】:

    猜你喜欢
    • 2014-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-12
    • 2012-08-10
    • 1970-01-01
    相关资源
    最近更新 更多