我遇到了一个令人沮丧的问题,就是将my.cnf设置为比我目前拥有的值更高的值并不是“接受”。
这是MySQL 5.6.14 on MacOS X 10.8.3
我试图解决掉的连接和其他看似与容量相关的问题。
例如:我的数据库的当前统计数据是:
mysql> SHOW GlOBAL STATUS LIKE "%open%";
+----------------------------+--------+
| Variable_name | Value |
+----------------------------+--------+
| Com_ha_open | 0 |
| Com_show_open_tables | 0 |
| Innodb_num_open_files | 1581 |
| Open_files | 5557 |
| Open_streams | 0 |
| Open_table_definitions | 4199 |
| Open_tables | 5000 |
| Opened_files | 54805 |
| Opened_table_definitions | 4247 |
| Opened_tables | 8515 |
| Slave_open_temp_tables | 0 |
| Table_open_cache_hits | 104991 |
| Table_open_cache_misses | 8479 |
| Table_open_cache_overflows | 3459 |
+----------------------------+--------+我当前的my.cnf值是:
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
max_allowed_packet=128M
wait_timeout=57600
table_open_cache = 5000
table-definition-cache = 10000
open_files_limit = 10000
max-connections = 15
thread-cache-size = 16K
max-heap-table-size = 6024M
tmp-table-size = 6024M
query-cache-size = 256K
query-cache-limit = 16M
key_buffer = 512M
long-query-time = 5
join-buffer-size = 1M
innodb_buffer_pool_size = 3046M这就产生了:
mysql> SHOW VARIABLES LIKE '%open%';
+----------------------------+----------+
| Variable_name | Value |
+----------------------------+----------+
| have_openssl | DISABLED |
| innodb_open_files | 5000 |
| open_files_limit | 10025 |
| table_open_cache | 5000 |
| table_open_cache_instances | 1 |
+----------------------------+----------+
5 rows in set (0.00 sec)应该是的。
我想提高我的开放限额
table_open_cache = 10000
table-definition-cache = 20000
open_files_limit = 60000但是,当我这样做时,my.cnf似乎是无效的,mysql报告:
mysql> SHOW VARIABLES LIKE '%open%';
+----------------------------+----------+
| Variable_name | Value |
+----------------------------+----------+
| have_openssl | DISABLED |
| innodb_open_files | 400 |
| open_files_limit | 256 |
| table_open_cache | 400 |
| table_open_cache_instances | 1 |
+----------------------------+----------+
5 rows in set (0.00 sec)这显然会杀死我的服务器。
发布于 2013-10-29 21:33:19
从你的数字看,你一定是碰到了一些错误或GA前的行为。为什么?
根据MySQL文档,对于GA版本MySQL 5.6,table_open_cache的缺省值是-1。这告诉mysqld选择一个公平的起始值,给出当前的操作系统条件。让这个值变得奇怪的是400是MySQL5.6.7的缺省值.这个事实。第一次GA释放为5.6.8。这可能是个巧合,但我猜你把table_open_cache设得太高了。显然,对于您的DB Server来说,5000是一个可容忍的值。
尝试将表格设置为2或4,然后重新启动mysql并查看。
发布于 2013-10-29 21:55:18
您可能已将每个进程打开的文件描述符的总数最大化。我发现了关于FreeBSD的类似讨论,它涉及16万个描述符,但我认为像MacOS这样的“消费者”操作系统的限制比较保守。问一下ulimit和sysctl你的限制是什么。
https://dba.stackexchange.com/questions/52447
复制相似问题