在尝试为我的all-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的总内存分配?
发布于 2012-05-01 08:54:29
经过多次检查和更多的大惊小怪之后,我发现这并不重要。显然,MySQLd稀疏地分配缓冲区,这意味着如果我不使用MyISAM,那么只有利于MyISAM的缓冲区不会增长到占用物理内存的很大部分,并且计算出的“总内存分配”实际上也不会被分配。
发布于 2012-04-04 09:51:12
您可以尝试Percona的配置向导。这应该是一个好的开始。佩尔科纳的人知道他们的MySQL。
警告:它将要求您注册才能获得最终结果。
https://tools.percona.com/wizard
除此之外,您可能还需要进行一些基准测试,以针对特定的负载模式进行调优。
https://stackoverflow.com/questions/10003514
复制相似问题