Database-Mysql-关于文件打开数限制

在Mysql中,打开文件数过多会出现too many open files错误。

与文件打开数有关的参数:

1、max_connections
最大连接数:
增加该值会增加mysqld 要求的文件描述符的数量。如果服务器的并发连接请求量比较大,建议调高此值,以增加并行连接数量,当然这建立在机器能支撑的情况下,因为如果连接数越多,介于MySQL会为每个连接提供连接缓冲区,就会开销越多的内存,所以要适当调整该值,不能盲目提高设值。

2、table_open_cache
表高速缓存数量:
当某一连接访问一个表时,MySQL会检查当前已缓存表的数量。如果该表已经在缓存中打开,则会直接访问缓存中的表已加快查询速度;如果该表未被缓存,则会将当前的表添加进缓存并进行查询。
table_open_cache用于限制缓存表的最大数目,它的作用就是缓存表文件描述符,如已经缓存的表未达到该值,则会将新表添加进来;若已经达到此值,MySQL会根据缓存表的最后查询时间、查询率等规则释放之前的缓存。
注意:在InnoDB存储引擎中,表的打开不受该参数限制,因为InnoDB会将其放到数据字典中,即在ibd文件里。

3、open_files_limit
操作系统运行mysqld打开的文件数目,该参数基于系统启动时指定的值。

有效的open_files_limit 计算公式如下:

  1. 10 + max_connections + (table_open_cache * 2)
  2. max_connections * 5
  3. 启动时设定的open_files_limit,如果没有指定默认为5000
    备注:如果open_files_limit的值未设置,会使用以上三个值中的最大值作为获取文件描述符的数量。

这里需要注意的是:
1、在一个已经设置open_files_limit值的系统中,修改操作系统ulimit -n的值是不起作用的;
2、在未设置open_files_limit值的系统中,可以通过修改操作系统ulimit -n的值来完成设置;
3、两者都需要重启数据库来让配置生效。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值