这篇文章的目的是为了说明在系统资源不够的情况下,MySQL 是怎么调整者三个参数的。
- table_open_cache & fd 打开一张表至少需要一个 文件描述符,如打开MyISAM需要两个fd;
- 系统最大打开文件数可以通过 ulimit -n查看。
根据配置(三个参数的配置值或默认值)计算 request_open_files(需要的文件描述符);
在有限值的的范围内MySQL 尽量将effective_open_files的值设大。
requested_open_files= min(effective_open_files, request_open_files)
重新计算参数值
如果配置的max_connections值大于limit,则将max_connections 的值修正为limit
其他情况下 max_connections 保留配置值
如果配置的table_cache_size 值大于limit,则将 table_cache_size 的值修正为limit
其他情况下table_cache_size 保留配置值
参数设置:
//mysql max_connections = 500
table_open_cache = 999 //ulimit -n
1500
生效的值:
open_files_limit = 1500 max_connections = min[(1500 - 10 - 800),500] = 500 table_open_cache = ( 1500 - 10 - 500) / 2 =495
发表评论