client_longest_output_list

600 views
Skip to first unread message

Kevin Johnson

unread,
Feb 5, 2018, 4:09:58 PM2/5/18
to Redis DB
Hello All,

I haven't seen much documentation on the interwebs regarding the client metric "client_longest_output_list".  

What does this metric actually measure and is it useful for indicating cluster / client health?

Thanks!

Kevin

hva...@gmail.com

unread,
Feb 6, 2018, 3:00:56 AM2/6/18
to Redis DB

Here's a snippet from the documentation page for the INFO command (https://redis.io/commands/INFO):

Here is the meaning of all fields in the clients section:

  • connected_clients: Number of client connections (excluding connections from slaves)
  • client_longest_output_list: longest output list among current client connections
  • client_biggest_input_buf: biggest input buffer among current client connections
  • blocked_clients: Number of clients pending on a blocking call (BLPOP, BRPOP, BRPOPLPUSH)

There doesn't seem to be a definition on that page of the meaning of "output list", but from context I'm pretty sure it means the data buffered to be sent to a client.  (like the third bullet point, but in the other direction)

Kevin Johnson

unread,
Feb 6, 2018, 6:18:13 PM2/6/18
to Redis DB
Thanks for the reply. So i'm guessing it's the buffered results of a client command that, due to some low-level system bottleneck, is prevented from being immediately returned...?

hva...@gmail.com

unread,
Feb 6, 2018, 11:13:43 PM2/6/18
to Redis DB
Yes.  Clients can invoke SUBSCRIBE/PSUBSCRIBE or MONITOR commands to start receiving a stream of data, or HGETALL or KEYS to get a potentially long list of keys/values, or even a single GET of a very large key, which can buffer a bunch of data.  If, as you said, the network path to the client goes on the blink, Redis can have data buffered for a while without seeing a disconnect event.  And INFO can reveal the connection that might be a problem.

Kevin Johnson

unread,
Feb 6, 2018, 11:58:32 PM2/6/18
to Redis DB
ok - so this metric more likely indicates issues with kernel/hw/network health rather than with the health of the Redis server itself...

hva...@gmail.com

unread,
Feb 7, 2018, 12:28:40 AM2/7/18
to Redis DB
Yes, most often it's a problem on the client end making it slow to swallow data, or impairments in the network between the server and the client preventing data from flowing quickly to the client.  In most situations, transmitting data takes fewer server resources than receiving it, so when a backlog accumulates on the sending end, it points toward trouble on the receiving end or in between.

Kevin Johnson

unread,
Feb 7, 2018, 1:26:05 PM2/7/18
to Redis DB
Thanks for you advice!
Reply all
Reply to author
Forward
0 new messages