我在 redis 中遇到了问题,每隔 18-30 小时就会失败一次,我必须手动重新启动它才能再次运行。我们的服务器有 1 个 wordpress 网站。Redis 版本:5.0.3 操作系统:CentOS Linux 版本 8.3.2011
问候
答案1
我建议您首先检查/var/log/messages
以了解全貌,也许还有 redis 的日志。
您可以看到进程以 结束SIGKILL
,这通常意味着它被 OOM 终止程序终止。当您的内核没有足够的内存来运行并且需要终止进程才能继续时,就会发生这种情况。您可以在 OOM 终止程序的日志消息中找到这里
您有多种选择可以缓解这种情况。
- 调查系统的长期内存使用情况。这是迄今为止最重要的一点。
- 设置或增加交换文件的大小。仅当内核无法分配物理内存页面时才会调用 OOM 杀手,这不适用于交换空间。这更像是一种创可贴(而不是解决方案),但应该有助于工作负载相对较低的系统,例如只有一个 WP 网站的服务器。
- 使用
Restart=always
来添加/usr/lib/systemd/system/redis.service
并重新加载配置systemctl daemon-reload
。这将确保您的 redis 不会停机,但不会解决您的内存问题 - 调整
OOMScoreAdjust
值redis.service
以确保 redis 不会被杀死。缺点是内核可能会选择杀死更重要的东西(例如sshd
) - 增加物理内存量