kor*_*esh 5 mysql innodb configuration
我有一个专用的 16 核 12 GB RAM Mysql 服务器,由于我将其配置为 16 GB 服务器,因此性能非常差,我想这解释了为什么该站点现在需要超过 500 秒来呈现单个页面。我使用 memcached 来缓存查询并使用 InnoDB 作为数据库引擎。
#8 core/16GB config stolen from http://groups.drupal.org/node/28830
back_log = 50
max_connect_errors = 9999999
table_cache = 5000
binlog_cache_size = 1M
max_heap_table_size = 128M
sort_buffer_size = 500K
join_buffer_size = 500K
thread_cache_size = 100
thread_concurrency = 16
query_cache_size = 512M
query_cache_limit = 8M
query_cache_min_res_unit = 2K
thread_stack = 192K
tmp_table_size = 384M
long_query_time = 2
# *** INNODB Specific options ***
innodb_additional_mem_pool_size = 80M
innodb_buffer_pool_size = 12G
innodb_file_io_threads = 4
innodb_thread_concurrency = 16
innodb_log_buffer_size = 20M
innodb_log_file_size = 800M
innodb_log_files_in_group = 3
innodb_max_dirty_pages_pct = 90
innodb_lock_wait_timeout = 120
innodb_file_per_table = 1
Run Code Online (Sandbox Code Playgroud)
任何有关优化 my.cnf 配置的帮助,甚至是设计一个新配置,都将不胜感激。
小智 3
在 12GB 机器上配置 16GB 会出现问题的唯一原因是 MySQL 是否尝试使用比系统更多的内存资源。大多数 MySQL 服务器都配置为使用过多的内存,但这不会导致它们从第一天起就运行不佳。如果机器没有交换并且 MySQL 被 OOM 杀死,则事实并不是它是 16GB 机器的配置在 12GB 盒子上。
如果问题出在 MySQL 端,您可以通过检查进程列表开始SHOW PROCESSLIST;。如果花费 500 秒,您肯定会看到一些挂起的查询。如果正在执行的查询被截断,您可以运行SHOW FULL PROCESSLIST;.
我还建议打开慢查询日志记录。一旦发现任何有问题的查询,您可以使用EXPLAIN语句来查看您的查询是否正在使用您拥有的索引。
如果将问题隔离到数据库,仍然存在很多变数。第一步是找出哪些查询进展缓慢并从那里开始。您可能会发现,与任何服务器端配置更改相比,改进查询将带来最大的改进。
| 归档时间: |
|
| 查看次数: |
2140 次 |
| 最近记录: |