redis 服务器 v2.8.4 运行在 Ubuntu 14.04 VPS 上,该 VPS 具有 8 GB RAM 和 16 GB 交换空间(在 SSD 上)。但是htop
显示redis
仅此一项就占用了22.4 G
内存!
我认为redis
数据库没有这么大,那么为什么它占用了这么多内存?
Redis 版本:Redis server v=2.8.4 sha=00000000:0 malloc=jemalloc-3.4.1 bits=64 build=a44a05d76f06a5d9
重启redis-server后
更新
redis-server
最终由于内存不足而崩溃。Mem
并且Swp
都达到 100%,然后redis-server
与其他服务一起被终止。
从dmesg
:
[165578.047682] Out of memory: Kill process 10155 (redis-server) score 834 or sacrifice child
[165578.047896] Killed process 10155 (redis-server) total-vm:31038376kB, anon-rss:5636092kB, file-rss:0kB
我想我们确实应该担心 redis 的内存使用量会随着时间的推移而变得越来越高!我们该如何解决这个问题?
答案1
您应该检查 redis.conf 中是否有名为“maxmemory”的设置。如果您不希望 Redis 使用超过 100MB 的内存,请确保在 redis.conf 中设置以下内容:
maxmemory 104857600
应用更改后,您必须重新启动 redis 实例。