1

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

性能指标

[--] 持续时间: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 Metrics

[!!] 使用的密钥缓冲区: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 hits/13238716229 total)

[OK] InnoDB 写日志效率:99.46%(175848562 hits/176798170 total)

[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 应该等于缓冲池大小 (=28G) 的 1/4。

innodb_buffer_pool_instances(=56)

系统配置

  • Ubuntu 16.04.5 LTS

  • mysql版本:5.7.22

我正在使用带有一个网站、3 家商店和 100k 种产品的 magento 1.9.3.4,大约有 1700 个类别。

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

如果有人可以根据我的 RAM 配置最合适的 mysql 配置,那将不胜感激。

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

谢谢。

4

1 回答 1

0

Suggestions for your my.cnf [mysqld] section

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

Disclaimer: I am the content author of website mentioned in my profile, Network profile where we have downloadable FREE Utility Scripts to assist with performance tuning and contact info.

于 2019-11-08T14:12:47.687 回答