我在digitalocean上用laravel forge创建了一个drop,因为几天前mysql服务器刚刚崩溃,唯一能让它再次工作的方法就是重新启动服务器(mysql使服务器没有响应)。
当我键入htop以查看进程列表时,会显示一些 /usr/sbin/mysqld --daemonize --pid-file=/run/mysqld/mysql.pid
(目前正在显示其中33个)。
错误日志大于1gb(是的,我知道!)并显示此消息数百次:
[警告]innodb:在缓冲池中很难找到空闲块(21次搜索迭代)!21次刷新页面失败!考虑增加缓冲池大小。也有可能在unix版本中fsync非常慢,或者完全冻结在os内核中。然后升级到更新版本的操作系统可能会有所帮助。请看下面诊断信息中的fsync数。挂起刷新(fsync)日志:0;缓冲池:0。167678974操作系统文件读取,2271392操作系统文件写入,758043操作系统fsyncs。启动innodb monitor将进一步的诊断打印到标准输出。
这个水滴已经运行了6个月,但这个问题是上周才开始的。最近唯一改变的是,我们每周向客户发送通知(仅限订阅通知的客户),让他们知道本周发生的某些事件。这是一个密集的过程,因为我们有几千个客户,但是我们利用laravel队列来处理所有的事情。
这是mysql设置相关的问题吗?
1条答案
按热度按时间nhjlsmyf1#
尝试增加
innodb_buffer_pool_size
在my.cnf中建议使用80%的专用db服务器,如果您已经达到了这个级别,那么您应该考虑使用更大的示例类型。