背景
发现网站(wordpress)不能访问,提示:error establishing a redis connection,插件使用了Redis,但是链接不上。
动作
由于网站已经登录不上去,只能直接修改wp-config文件先不使用redis配置,恢复网站访问。
排查
登录到服务器上使用命令,排查下是否是OOM
dmesg | grep -i redis
返回
oom-kill:constraint=CONSTRAINT_NONE,nodemask=(null),cpuset=/,mems_allowed=0,global_oom,task_memcg=/system.slice/redis.service,task=redis-server,pid=33619,uid=988
Out of memory: Killed process 33619 (redis-server) total-vm:554292kB, anon-rss:441108kB, file-rss:0kB, shmem-rss:0kB, UID:988 pgtables:980kB oom_score_adj:0
原因:系统内存不足,触发了 OOM Killer,Redis 主进程(PID 33619)被系统强制杀掉。anon-rss:441108kB → Redis 占用了约 431MB 的匿名页内存。
解决方案
修改redis.conf并设置淘汰策略
maxmemory 256mb
maxmemory-policy allkeys-lru
如果只作为缓存系统,也可以关闭持久化,进一步提高性能
save ""
appendonly no