0

在尝试为我的全 InnoDB 应用程序环境(当然,mysql DB 仍然是 MyISAM)配置我的 mysqld 时,我不断看到这个公式的变体来确定总内存使用量:

key_buffer_size + query_cache_size + tmp_table_size + innodb_buffer_pool_size + innodb_additional_mem_pool_size + innodb_log_buffer_size
+ max_connections * (read_buffer_size + read_rnd_buffer_size + sort_buffer_size + join_buffer_size + binlog_cache_size + thread_stack)

这个总和大于我的可用物理内存,可能会导致分页。与我的备用服务器(具有更多内存)相比,我当然看到了性能下降。

我正在尝试并失败,以找出哪些变量对 InnoDB 无用(仅对 MyISAM 有用)并且可以大大减少以缩小我的总内存分配。

问题,我可以调低哪些配置变量来减少 MySQL 的总内存分配?

4

2 回答 2

0

经过多次检查和大惊小怪,我发现这并不重要。显然 MySQLd 会稀疏地分配缓冲区,这意味着如果我不使用 MyISAM,仅对 MyISAM 有益的缓冲区不会增长到占用大量物理内存,并且计算出的“总内存分配”实际上不会被分配。

于 2012-05-01T00:54:29.173 回答
-1

你可以试试 Percona 的配置向导。这应该是一个好的开始。Percona 的人知道他们的 MySQL。

警告:它会要求您注册以获得最终结果。

https://tools.percona.com/wizard

您可能需要做一些基准测试来调整您的特定负载模式。

于 2012-04-04T01:51:11.610 回答