我们继承了一个系统,其中有一个用于排队操作的中央服务器。选择Redis作为排队代理。
偶尔(就像每2-3天一样),redis服务CPU的使用率甚至超过100%。
我试着阅读日志,找出原因:
tail /var/log/redis/redis-server.log
但是它返回空的结果。
我发现这篇文章提出了一些建议。但瑞迪斯不听我的命令。
我被困在这一点上,在该做什么和如何找到问题。此外,是否有一种方法来限制CPU使用量的redis?
发布于 2016-08-24 07:38:25
我在使用redis CPU时也遇到了问题。我的例子是许多redis连接(客户端)和linux默认的1024个打开文件。
CPU使用率高的原因可能是一些CPU密集型操作(如smembers )。
还可以使用SLOWLOG命令记录长期运行的命令。
在没有日志和SLOWLOG结果的情况下,跟踪问题的最好方法是暂停redis进程并查看发生了什么。在我的例子中,这是“太多打开的文件”错误,但它只出现在strace输出中,这是通过将默认的nr文件限制增加到1024以上来解决的。
发布于 2019-05-18 18:46:58
默认情况下,Redis没有任何限制-使用-资源,所以一切取决于服务器的能力。因此,我建议您配置具有限制的Redis:
编辑这个文件:/etc/redis.conf
2-添加内存限制(字节):maxmemory 536870912
(在我的例子中是512 my,但是您必须使用您想要/需要的ram的限制)
3-还添加以下规则行:maxmemory-policy volatile-lru
在激活此规则后,当maxmemory已满时,redis将从缓存中移除使用较少的键,以便为新的键提供空间。
如果您想要更多关于这方面的信息,所有内容都在/etc/redis.conf
上得到了很好的评论。
https://serverfault.com/questions/762268
复制相似问题