1

我有一台专用服务器 - Intel Xeon L5320,配备 8GB RAM 和 2 x 500GB 7200RMP HDD

我需要优化 mysql 以应对大型 5Gb MyISAM 表 + 大约 25 - 30 个较小的数据库,目前它看起来像这样:

key_buffer = 3G
thread_cache_size = 16
table_cache = 8192
query_cache_size = 512M

因为它是服务器真的很挣扎,我会继续收到 tmp disk full 警告,请你帮我/建议我的服务器的最佳 my.cnf 配置和或任何其他可以提高性能的设置更改。

提前致谢

4

2 回答 2

1

如果/tmp正在填满,则您正在某处运行一些大型、低效的查询,这些查询正在回退到 FILESORT。编写良好、高效的查询通常不需要这个——打开慢查询日志(如果还没有的话)并检查日志以查看需要优化的内容。

于 2012-11-26T16:30:44.417 回答
1

我建议您使用mytopmysqltuner来分析使用 mysql 资源(RAM 和 CPU)。

也启用记录慢查询的选项:

log_slow_queries = /var/log/mysql/mysql-slow.log
long_query_time = 3

并查看有关ntpd服务的这篇文章:

MySQL 高 CPU 使用率

最后,我将您留在一个设置中,即我有一个专用服务器来处理高交易率。

max_allowed_packet=16M
key_buffer_size=8M
innodb_additional_mem_pool_size=10M
innodb_buffer_pool_size=512M
join_buffer_size=40M
table_open_cache=1024
query_cache_size=40M
table_definition_cache=256
innodb_additional_mem_pool_size=10M
key_buffer_size=16M
max_allowed_packet=32M
max_connections = 300
query_cache_limit = 10M
log_slow_queries = /var/log/mysql/mysql-slow.log
long_query_time = 3

问候。

于 2012-11-26T20:18:08.417 回答