如何检查哪些服务在Redis上消耗更多资源。
Redis上哪个服务的连接数最多?
答案 0 :(得分:1)
您可以输入命令"客户列表",您会看到以下内容:
id=39 addr=127.0.0.1:34706 fd=7 name= age=141156 idle=0 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=32768 obl=0 oll=0 omem=0 events=r cmd=client
id=78 addr=127.0.0.1:58014 fd=5 name= age=63779 idle=0 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=0 obl=0 oll=0 omem=0 events=r cmd=llen
id=80 addr=127.0.0.1:36826 fd=6 name= age=46776 idle=1685 flags=N db=1 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=0 obl=0 oll=0 omem=0 events=r cmd=del
答案最有用的关键是"年龄" &安培;&安培; "空闲" ,"年龄"表示连接的总持续时间,以秒为单位,"空闲"表示此连接的空闲时间。所以(年龄 - 闲置)/年龄这个客户使用服务器的CPU比其他客户端更多,但价值更小,但不是很精确
其他命令也可以给你一些建议,比如" INFO"和" MONITOR" 。 INFO为您提供有关redis服务器的统计信息,例如内存使用情况,处理的命令,CPU使用情况,连接的客户端等,您可以参考this获取更多信息。
" MONITOR"为您提供实时显示,显示现在发生的事情,正在执行的命令,发送此命令的人员。也许您可以使用MONITOR输出计算每个客户端资源。
e.g。 对于每个命令,首先解析它并使用成本来添加客户端成本总和。在耗时的计算中,SET是O(1)并且Lrange是O(N)。但这也很难准确地做到这一点。但您可以使用以下命令记录此内容:
redis-cli monitor > redis-command.log
您可以使用此日志进行一些分析。但请注意,MONITOR命令会降低您的redis服务器吞吐量,请检查this
答案 1 :(得分:0)
如果您运行"客户列表"对Redis实例执行命令,您应该能够看到连接到redis实例的客户端的完整列表及其IP地址。然后,您可以查看哪些客户端(服务)与Redis实例的连接数最多。