redis参数调整
占用内存飙升
执行 redis-cli -h 192.168.0.151 -p 6379
执行 info
观察info信息,clients:有一点引起了怀疑: client_longes_output_list有些异常高。
服务端和客户端交互时,分别为每个客户端设置了输入缓冲区和输出缓冲区,这部分如果很大的话也会占用Redis服务器的内存。
client_longest_output_list高,应该是输出缓冲区占用内存较大,也就是有大量的数据从Redis服务器向某些客户端输出。
执行client list命令 redis-cli -h host -p port client list | grep -v "omem=0"
来查询输出缓冲区不为0的客户端连接,于是查询到祸首monitor。
monitor的模型是这样的,它会将所有在Redis服务器执行的命令进行输出,通常来讲Redis服务器的QPS是很高的,也就是如果执行了monitor命令,Redis服务器在Monitor这个客户端的输出缓冲区又会有大量“存货”,也就占用了大量Redis内存。
执行ps -ef | grep monitor,查找对应进程
参考:https://blog.****.net/chenleixing/article/details/50530419