Discourse 论坛我遇到两次资源占满的情况,第一次通过升级解决了问题,过年以后又遇到了占满 CPU 与内存的情况。
即使没人访问一样会占满服务器的所有资源。 这次原因可能是之前服务器磁盘满了,Discourse 会在后台循环处理一些任务,比如给用户发送邮件,如果任务无法执行,会不断的重试。这应该就是导致占满资源的原因。
在下面这个页面上你会看到重试的任务。
访问地址:
sidekiq/retries
导致任务不断重试是因为我的邮件配置有问题。
我折腾了一圈,升级 Discourse,升级 Docker,更新 Docker 配置,更换服务器,恢复备份。
但实际上,只需要几步就能解决:
cd /var/discourse
./launcher enter app
redis-cli flushall