首页 > 解决方案 > MariaDB max_open_files 超过 600k

问题描述

关于 max_open_files 的问题已经被问了一千次了。但是,大多数情况下建议将限制设置为 65535 左右。但是,我们的警告是 mysql 试图打开超过 640k 的文件。我们将限制增加到 768k。但是,文档表明 1024x1024 (1048576) 是 linux 限制。

基本上,有没有办法找出为什么我们有这么多打开的文件?我们只有 1 个中型 db(小于 300mb)和 6-8 个非常小的 db。如果 1024x1024 真的是极限,那么在 6 个月或更短的时间内,我们似乎可能会超过这个极限。然后什么?数据库会内爆吗?

标签: mysqlmariadb

解决方案


MySQL 也为其他事情打开一个“文件”,但打开文件数量多的主要原因是连接。

MySQL 和几乎所有数据库的行为都是这样的,每个连接都算作一个打开的文件。

您可以通过以下方式检查连接数:

SHOW STATUS LIKE '%Threads_connected%';

可能您需要调整max_connections参数并从应用程序的角度寻找持久连接和池。

如果您的数据库有问题、连接卡住或某种“dos”,您可以检查正在执行的进程:

SHOW FULL PROCESSLIST;

并最终杀死一些奇怪的东西:

KILL <pid>; -- the id from the command above

推荐阅读