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