Why am I seeing hundreds of aged client connections that appear to be days old?

670 views Asked by At

We are fairly new to using Redis as part of our product solution, so we very well could be missing something here. When I run the command, redis-cli infor | grep client command I am seeing numbers such as this:

connected_clients:472 client_longest_output_list:0 client_biggest_input_buf:0 blocked_clients:0

On both of our servers. We are running Redis 2.8 using the latest StackExchange. Redis client library. We have two Redis instances configured for master/slave. We load data into Redis via an SSIS package and end user application is a read-only application. Currently we are only experiencing this in our DEV environment because until we can get the master/slave configuration stabilized we will only run a single Redis instance in our QA and production environment.

Back to the DEV environment. For a while the client was throwing errors indicating that No Operation could be performed due to connectivity issues so the thought we had was that the growing number of aged connections had something to do with this issue. We configured the server-side timeout setting to one hour and noticed considerable improvement with client connections being cleaned up on the servers. This seemed to do the trick for a while, but this morning I am once again seeing old connections sticking around which doesn't feel right to me.

I have not seen any errors, yet, but I am guessing I should be concerned having hundreds of aged connections sitting around. Here is an example of some of the client connections:

id=59096 addr=192.168.60.1:57530 fd=668 name=RCTFSBUILD1 age=505900 idle=502315 flags=N db=0 sub=1 psub=0 multi=-1 qbuf=0 qbuf-free=0 obl=0 oll=0 omem=0 events=r cmd=unsubscribe id=59861 addr=192.168.60.1:58363 fd=1434 name=RCTFSBUILD1 age=505833 idle=502253 flags=N db=0 sub=1 psub=0 multi=-1 qbuf=0 qbuf-free=0 obl=0 oll=0 omem=0 events=r cmd=unsubscribe

It is obvious that these connections are all related to the pub/sub channel and the client listening for notifications, I presume. Why do these connections not get cleaned up? If you also notice, these connections are coming from our build server where we run acceptance tests quite often. It is not every time that the connections stick around, but I would "assume" that once the client process completes, in whatever manner, that the connections would be cleaned up.

Just looking for some advice, areas to look into, wondering if I need to be concerned, is this expected, etc.

I hope this is enough information for others to understand the concern.

Thanks!

0

There are 0 answers