【问题标题】:MySql configuration for huge Magento大型 Magento 的 MySql 配置
【发布时间】:2018-07-27 09:56:50
【问题描述】:

下面是 mysqltuner 的报告,最后我写了服务器统计数据和实际问题。

性能指标

[--] Up for: 2d 14h 28m 52s (59M q [266.240 qps], 96K conn, TX: 114G, RX: 16G)

[--] 读取/写入:18% / 82%

[--] 二进制日志被禁用

[--] 物理内存:125.9G

[--] MySQL 最大内存:381.5G

[--] 其他进程内存:308.9M

[--] 总缓冲区:59.2G 全局 + 66.0M 每个线程(5000 个最大线程)

[--] P_S 最大内存使用量:72B

[--] Galera GCache 最大内存使用量:0B

[OK] 达到的最大内存使用量:61.3G(已安装 RAM 的 48.69%)

[!!] 最大可能的内存使用量:381.5G(已安装 RAM 的 302.98%)

[!!] 其他进程的总体可能内存使用量超出内存

[OK] 慢查询:0% (171/59M)

[OK] 可用连接的最高使用率:0% (32/5000)

[OK] 中止连接:0.00% (1/96766)

[!!] 由于互斥量争用,默认情况下可能禁用查询缓存。

[OK]查询缓存效率:88.5%(34M缓存/39M选择)

[OK] 每天查询缓存修剪次数:0

[OK] 需要临时表的排序:0%(264 临时排序 / 276K 排序)

[!!] 不使用索引执行的连接:13649

[OK] 在磁盘上创建的临时表:3%(磁盘上 23K / 总共 641K)

[OK] 线程缓存命中率:99%(创建 32 个 / 96K 连接)

[OK] 表缓存命中率:70%(7K 打开/10K 打开)

[OK] 使用的打开文件限制:0% (124/1M)

[OK] 立即获取表锁:100%(1K 立即/1K 锁) MyISAM 指标

[!!] 使用的密钥缓冲区:18.1%(已使用 27M / 150M 缓存)

[!!] 密钥缓冲区大小/MyISAM 索引总数:144.0M/147.8M

[!!] 读取键缓冲区命中率:86.8%(38 次缓存/5 次读取)

InnoDB 指标

[--] InnoDB 已启用。

[--] InnoDB 线程并发:16

[OK] 每个表的 InnoDB 文件已激活

[OK] InnoDB 缓冲池/数据大小:56.0G/8.5G

[!!] InnoDB 日志文件大小/InnoDB 缓冲池大小(2.67857142857143 %)的比率:768.0M * 2/56.0G 应该等于 25%

[!!] InnoDB 缓冲池实例:32

[--] InnoDB 缓冲池块数:448 个,用于 32 个缓冲池实例

[OK] Innodb_buffer_pool_size 与 Innodb_buffer_pool_chunk_size & Innodb_buffer_pool_instances 对齐

[OK] InnoDB 读取缓冲区效率:100.00%(13238376177 次点击/总共 13238716229)

[OK] InnoDB 写入日志效率:99.46%(175848562 次点击/总共 176798170 次)

[OK] InnoDB 日志等待:0.00%(0 次等待 / 949608 次写入)

General recommendations:
Control warning line(s) into /my/path/to/log/mysql-error.log file
Control error line(s) into /my/path/to/log/mysql-error.log file
Reduce your overall MySQL memory footprint for system stability
Dedicate this server to your database for highest performance.
Adjust your join queries to always utilize indexes

要调整的变量:

MySQL 的最大内存使用量非常高

在增加 MySQL 缓冲区变量之前添加 RAM

query_cache_size (=0)

query_cache_type (=0)

join_buffer_size (> 16.0M,或者总是使用连接索引)

key_buffer_size (> 147.8M)

innodb_log_file_size * 如果可能的话,innodb_log_files_in_group 应该等于缓冲池大小的 1/4 (=28G)。

innodb_buffer_pool_instances(=56)

系统配置

  • Ubuntu 16.04.5 LTS

  • Mysql 版本:5.7.22

我正在使用 magento 1.9.3.4 和一个网站、3 家商店和 10 万种产品,大约 1700 个类别。

除了上面的Mysql建议之外,我注意到的另一件事是,当我在浏览器中加载category时,mysql会消耗40-50%的CPU使用率。

如果有人可以帮助配置最合适的mysql配置,基于我的RAM,将非常感激。

另外请记住,由于我们有 100k+ 产品,速度是主要问题,所以 mysql 配置的任何更改都不应消耗速度,如果它有助于提高速度,那将是一个很好的方法继续前进。

谢谢。

【问题讨论】:

  • 附加信息请求。在 pastebin.com 上发布并分享链接。 # MySQL 主机服务器的核心 A) 完成(未编辑)my.cnf 或 my.ini 来自 SSH 登录根,文本结果为:B) SHOW GLOBAL STATUS;至少 24 小时正常运行时间后 C) 显示全局变量; D) 显示完整的处理程序;和 可选的非常有用的信息,如果可用,包括 - htop 或 top 或 mytop 用于大多数活动应用程序,ulimit -a 用于 linux/unix 限制列表,iostat -xm 5 3 用于按设备和核心/cpu 计数的 IOPS,用于服务器工作负载调整分析以提供建议。

标签: mysql magento database-administration mysqltuner


【解决方案1】:

对您的 my.cnf [mysqld] 部分的建议

thread_cache_size=64  # from 32 to expand capacity
innodb_lru_scan_depth=100  # from 1024 to conserve 90% of CPU cycles used for function every second

免责声明:我是我的个人资料中提到的网站的内容作者,网络个人资料中我们有可下载的免费实用程序脚本来帮助进行性能调整和联系信息。

【讨论】:

  • @invigoratesystems 您是否能够实施这些建议?您对系统性能的看法?
猜你喜欢
  • 2011-02-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-18
  • 2011-05-20
相关资源
最近更新 更多