每个连接的Redis服务的总连接数

时间:2017-07-19 10:48:23

标签: redis

如何检查哪些服务在Redis上消耗更多资源。

Redis上哪个服务的连接数最多?

2 个答案:

答案 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实例的连接数最多。