Linux 使用 netstat 定位redis连接数过多的问题

业务上使用了redis,实际运用场景中发现 redis 连接接过多,导致业务不可用情况。接下来讲下如果查看 redis 连接数和确定是哪些应用在占用 redis 连接。

# 查看 redis 连接数和访问 ip top20

[wj@iU25eGust4uK ~]$ netstat -nat | grep ":6379" |awk '{print $5}'|awk -F: '{print $1}'|sort|uniq -c|sort -nr|head -20
      7 192.168.0.114
      4 192.168.0.143
      ...
[wj@iU25eGust4uK ~]$ netstat -nat | grep ":6379"
tcp        0      0 0.0.0.0:6379                0.0.0.0:*                   LISTEN      
tcp        0      5 192.168.0.115:6379          192.168.1.175:51092         ESTABLISHED 
tcp        0      0 192.168.0.115:6379          192.168.0.143:58958         ESTABLISHED 
...

# 查看 192.168.0.143 机器上的 58958 对应哪个应用的程序进程iD

[root@iZ wj]# netstat -nvp|grep 58958
tcp        0      0 192.168.0.143:58958         192.168.0.115:6379          ESTABLISHED 7951/java

# 查看进程id 7951 对应的执行程序

[root@iZ wj]# ps -ef|grep 7951
root      7951     1  0 Oct18 ?        04:28:17 /usr/lib/jvm/jre-1.8.0-openjdk-1.8.0.272.b10-0.el6_10.x86_64/bin/java -Dsche xxx xxx java.jar

结果可见,是 java 程序产生的  redis TCP连接 


(完)