最近,mysql 服务大约每天崩溃一两次,唯一留下的痕迹就是系统事件日志,内容如下:
Changed limits: max_open_files: 2048 max_connections: 800 tablecache: 619
现在我原本认为这可能是因为很多用户(嗯,这里 20 是一个“很多”)登录到了使用数据库的软件,但是今天,只有 3-4 个用户登录时就发生了这种情况。
我目前正在检查软件/ORM 以查看它是否打开了任何不需要的连接,但我想知道是否可以使用 mysql 做任何事情来修复它。
我看见这但所有推荐的 innodb 设置似乎都比我已经设置的要少。
答案1
值得发布 mysql 配置。你有多少个表?你使用 innodb 还是 myiasm?
我注意到他们有“open-files-limit = 8192”,而您的最大文件数是 2K。
lsof 可用于检查进程打开了多少个文件描述符
答案2
有多少个活动连接?使用“mysqladmin processlist”来查找。完全有可能空闲连接没有被关闭——如果是这样的话,关闭 ORM 中的“持久连接”可能会有所帮助。