问题标签 [mysqltuner]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
412 浏览

mysql - MySQL 数据库性能调优

我开发了一个 PHP 和 MySQL Web 应用程序。最近它已经显示出放缓的迹象。我在 090516 上运行了 mysql-tuner,正常运行时间为 12 天。

服务器规格如下:
- Linux CentOS 6
- 48 个处理器
- 64GB RAM

这是 090516 的 mysql-tuner 日志输出,正常运行时间为 12 天:

我很少有事情发生,但是我不是经验丰富的 MySQL DBA,因此正在向堆栈社区寻求建议。请告知我应该在 my.cnf 中修改哪些设置,如果我需要在 PHPMYADMIN 中对表进行碎片整理,是否需要在非工作时间进行。

直到最近我才注意到我的网络应用程序变慢了,最近我确实在内核更新后重新启动了服务器。截至这篇文章的当前正常运行时间为 19 小时。

**额外信息:** Web 应用程序有一个用户使用移动设备登录的前端,以及一个由办公室员工管理提交(即表单)并将它们发送到不同部门的后端。

如果需要,我可以用 munin 图表更新它。我知道服务器严重过度配置(这意味着它的 RAM 和处理器比需要的多,但我希望在未来拥有更多的东西)。我的问题是,我可以简单地调整一些 my.cnf 设置(如 mysqltuner 和/或 phpmyadmin 所建议的那样)以提高效率吗?

0 投票
2 回答
1550 浏览

mysql - 我应该根据 MySQL Tuner 结果优化什么?

-------- 日志文件建议 ------------------



[--] 日志文件:/var/log/mysqld.log(4K)

[OK] 日志文件 /var/log/mysqld.log 存在

[OK] 日志文件 /var/log/mysqld.log 可读。

[OK] 日志文件 /var/log/mysqld.log 不为空

[OK] 日志文件 /var/log/mysqld.log 小于 32 Mb

[!!] /var/log/mysqld.log 包含 21 个警告。

[OK] /var/log/mysqld.log 不包含任何错误。

[--] 在 /var/log/mysqld.log 中检测到 3 个启动

[--] 1) 170307 19:53:17 [注意] /usr/libexec/mysqld:准备连接。

[--] 2) 170307 19:50:51 [注意] /usr/libexec/mysqld: 准备连接。

[--] 3) 170307 19:47:30 [注意] /usr/libexec/mysqld: 准备连接。

[--] 在 /var/log/mysqld.log 中检测到 3 次关闭

[--] 1) 170307 19:53:17 [注意] /usr/libexec/mysqld: 关机完成

[--] 2) 170307 19:50:51 [注意] /usr/libexec/mysqld: 关机完成

[--] 3) 170307 19:47:29 [注意] /usr/libexec/mysqld: 关机完成

-------- 存储引擎统计 ------------------



[--] 状态:+CSV +InnoDB +MRG_MYISAM

[--] MyISAM 表中的数据:33M(表:29)

[--] InnoDB 表中的数据:368M(表:52)

[OK] 碎片表总数:0

-------- 安全建议 ------------------



[!!] 用户“@jobzmachine”是一个匿名帐户。

[!!] 用户 '@localhost' 是一个匿名帐户。

[!!] 用户 '@jobzmachine' 没有设置密码。

[!!] 用户 '@localhost' 没有设置密码。

[!!] 用户 '@jobzmachine' 有用户名作为密码。

[!!] 用户 '@localhost' 使用用户名作为密码。

[!!] 用户 'backup@%' 没有特定的主机限制。

[!!] 用户 'search@%' 没有特定的主机限制。

[!!] 没有基本密码文件列表!

-------- CVE 安全建议 ------------------


--

[--] 由于 --cvefile 选项未定义而跳过

- - - - 性能指标 - - - - - - - - - - - - - - -



[--] 最多:3m 12s(23K q [123.125 qp​​s],133 conn,TX:77M,RX:2M)

[--] 读/写:84% / 16%

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

[--] 物理内存:31.2G

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

[--] 其他进程内存:2.3G

[--] 总缓冲区:1.2G 全局 + 2.7M 每个线程(最大 151 个线程)

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

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

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

[OK] 最大可能内存使用量:1.6G(已安装 RAM 的 5.04%)

[OK] 与其他进程的总体可能内存使用量与可用内存兼容

[OK] 慢查询:0% (0/23K)

[OK] 可用连接的最高使用率:66% (101/151)

[!!] 中止的连接:13.53% (18/133)

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

[OK]查询缓存效率:78.2%(11K缓存/15K选择)

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

[OK] 需要临时表的排序:0%(0 个临时排序 / 505 个排序)

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

[!!] 在磁盘上创建的临时表:48%(磁盘上 142 / 总共 292)

[!!] 线程缓存命中率:24%(101 创建 / 133 连接)

[OK] 表缓存命中率:88%(56开/63开)

[OK] 使用的打开文件限制:1% (17/1K)

[OK] 立即获取表锁:100%(5K 立即/5K 锁)

-------- 性能架构 ------------------



[--] 性能模式已禁用。

[--] P_S 使用的内存:0B

[--] 未安装系统架构。

-------- 线程池指标 ------------------------------



[--] 线程池统计被禁用。

-------- MyISAM 指标 ------------------



[!!] 使用的密钥缓冲区:18.2%(已使用 24M / 134M 缓存)

[OK] 密钥缓冲区大小/MyISAM 索引总数:128.0M/20.6M

[OK] 读取 Key 缓冲区命中率:100.0%(缓存 393K / 0 次读取)

[OK] Write Key 缓冲区命中率:100.0%(1K 缓存/0 次写入)

-------- InnoDB 指标 ------------------



[--] InnoDB 已启用。

[--] InnoDB 线程并发:8

[!!] 每个表的 InnoDB 文件未激活

[OK] InnoDB 缓冲池/数据大小:1.0G/368.2M

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

[--] InnoDB 缓冲池块大小未在您的版本中使用或定义

[OK] InnoDB 读取缓冲区效率:99.95%(5772058 hits/ 5774714 total)

[!!] InnoDB 写入日志效率:77.58%(256 次点击/总共 330 次)

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

-------- AriaDB 指标 ------------------------------



[--] AriaDB 被禁用。

-------- TokuDB 指标 ------------------



[--] TokuDB 被禁用。

-------- XtraDB 指标 ------------------------------



[--] XtraDB 被禁用。

-------- RocksDB 指标 ------------------



[--] RocksDB 被禁用。

-------- 蜘蛛指标 ------------------



[--] 蜘蛛被禁用。

-------- 连接指标 ------------------



[--] 连接被禁用。

-------- Galera Metrics ------------------



[--] Galera 被禁用。

-------- 复制指标 ------------------



[--] Galera 同步复制:否

[--] 此服务器没有复制从属服务器。

[--] 这是一个独立的服务器。

-------- 建议 ------------------



一般建议:

将警告行控制到 /var/log/mysqld.log 文件中

删除匿名用户帐户 - 有 2 个匿名帐户。

使用以下 SQL 语句为用户设置密码( SET PASSWORD FOR 'user'@'SpecificDNSorIp' = PASSWORD('secure_password'); )

为 user@host 设置安全密码( SET PASSWORD FOR 'user'@'SpecificDNSorIp' = PASSWORD('secure_password'); )

将 user@% 的主机限制为 user@SpecificDNSorIp

MySQL 在过去 24 小时内启动 - 建议可能不准确

减少或消除未关闭的连接和网络问题

调整您的连接查询以始终使用索引

进行调整时,使 tmp_table_size/max_heap_table_

大小相等

减少没有 LIMIT 子句的 SELECT DISTINCT 查询

不应为 MySQL 和 MariaDB 5.5 及更低版本激活性能

考虑从https://github.com/mysql/mysql-sys安装 Sys 架构

要调整的变量:

query_cache_type (=0)

join_buffer_size (> 128.0K,或者总是使用连接索引)

tmp_table_size (> 32M)

max_heap_table_size (> 32M)

thread_cache_size (> 16384)

performance_schema = OFF 禁用 PFS

innodb_file_per_table=ON

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

0 投票
1 回答
151 浏览

mysql - 使用 ISNULL 条件查询的左连接需要很长时间才能在 MySQL RDS 上执行

请帮我优化下面的查询,这个查询在ISNULL条件下执行需要超过60 分钟,但是如果我们将ISNULL替换为<=>条件,它需要15 分钟才能执行,但我们的期望是这个查询应该最多需要 2 分钟。

两个表都有:- 3880494 条记录。

SELECT hs.headendid FROM headendlineups_stagging hs LEFT JOIN headendlineups_23march2017 hlp ON hs.headendid=hlp.headendid WHERE ISNULL(hlp.headendid)

将 ISNULL 替换为 <=> 运算符

解释两个查询的简单明了

请帮助我了解两个查询是否扫描相同数量的记录,那么为什么两个查询的执行时间不同?并请建议编写上述查询的更好方法。

0 投票
1 回答
9352 浏览

mysql - Mysql 进程超过 400% 的 CPU 使用率

我的 mysql 服务器遇到了一些问题当我运行 top 命令时,它说 mysql 进程已经占用了 350-500% 的 CPU 我正在使用 49 GB RAM 运行 centos 6

my.cnf 设置:

MySQLTuner 的输出:

我可以更改 my.cnf 以防止服务器挂起吗?

0 投票
2 回答
2288 浏览

mysql - mysqld性能高cpu和内存使用率

如果您能帮助解决如下所示的 mysqld 性能问题,我将不胜感激。顶部显示 2 个 mysqld,CPU 使用率为 99%,内存使用率为 73%。

我总共有 6 个 CPU 和 8GB 的​​ RAM。您可以轻松查看过去 24 小时 CPU 的性能。

我也在发送 mysql 调谐器的输出。

CPU 使用率 24 小时

最高输出

--> mysqltuner 输出:

0 投票
0 回答
135 浏览

mysql - MySQL如何高效维护1000多款产品的日库存?

我有 1000 多种产品。我需要每天维护库存。

产品表架构

库存表架构

每天StockInfo都会更新表格。该列OpeningStock由cron作业更新,逻辑是:

最后一天ClosingStock = OpeningStock + Purchase - Sales

今天OpeningStock = last day ClosingStock

这种方法会消耗更大的行,因此会影响性能。

注意:每天每件产品至少有一次买卖

请帮助我重新设计这个逻辑。

0 投票
1 回答
7293 浏览

mysql - 16GB RAM 服务器中的 MySQL 优化

我有一个带有 16 GB RAM的CentOS 6.5 虚拟机。

我觉得MySQL的响应很慢,我已经运行了MySQLTuner脚本,并且根据给定的建议,我可以如何更改 my.cny 配置文件以提高性能?

这是上次 MySQL 重启 2 天后的结果:

这是我的 my.cny

谢谢 !!!

0 投票
1 回答
1735 浏览

mysql - MariaDB 优化和 mysqltuner.pl - RAM 和调优

我正在尝试优化我正在运行的数据库,它位于具有 8GB RAM 的系统上,并且希望它能够使用大约 5GB-6GB 的内存。我已经运行了 mysqltuner.pl 脚本,并进行了一些更改,但在做太多之前,我想要一些反馈。我已经包含了 mysqltuner 的输出,它提出了一些建议,并且列出了一些警告,我想解决这些问题:

问题:

我的配置(my.cnf)目前看起来像这样:

这是 mysqltuner 的完整输出,但是我没有添加它建议在最后调整的变量。我实际上无法在 my.cnf 或包含目录中的文件中找到它们。我猜如果没有声明它们,它们会有一个默认值。我应该打扰那些吗?

0 投票
1 回答
206 浏览

mysql - mysql 性能 - mysqltuner

在两个数据库 MySQL 服务器上(来自两个不同的网站),我启动了一个 mysqltuner(我们在 web 服务器上有一个超时,但我们现在不知道它来自哪里)

以下是 mysqltuner 带来建议的优化,数据库运行在具有 4vcpu 和 15 GB ram(ubuntu 16.04 服务器)的机器上。

mysqltuner 建议:

db01 产品

要调整的变量:

db02 产品:

要调整的变量:

我想听听你的意见,特别想了解这些参数(我开始使用 MySQL 有点^^)。

0 投票
1 回答
377 浏览

mysql - 调优mysql。mysqltuner 建议

下午好。该站点位于 VPS(10 GB RAM、2 个 CPU 内核、65 GB SSD)上。我想提高网站的速度。但是我不明白mysql的所有参数。我写出了当前的 mysql 设置,以及 mysqltuner 的建议。在这个项目中,我们不会在代码中分配资源进行分析和修改。我想通过设置获得速度增益。如果可能的话。谢谢你。

当前 Mysql 设置

mysqltuner 参考资料