diff --git a/src/server.c b/src/server.c index 375c6477..16c807f6 100644 --- a/src/server.c +++ b/src/server.c @@ -845,13 +845,14 @@ int clientsCronResizeQueryBuffer(client *c) { /* There are two conditions to resize the query buffer: * 1) Query buffer is > BIG_ARG and too big for latest peak. - * 2) Client is inactive and the buffer is bigger than 1k. */ - if (((querybuf_size > PROTO_MBULK_BIG_ARG) && - (querybuf_size/(c->querybuf_peak+1)) > 2) || - (querybuf_size > 1024 && idletime > 2)) + * 2) Query buffer is > BIG_ARG and client is idle. */ + if (querybuf_size > PROTO_MBULK_BIG_ARG && + ((querybuf_size/(c->querybuf_peak+1)) > 2 || + idletime > 2)) { - /* Only resize the query buffer if it is actually wasting space. */ - if (sdsavail(c->querybuf) > 1024) { + /* Only resize the query buffer if it is actually wasting + * at least a few kbytes. */ + if (sdsavail(c->querybuf) > 1024*4) { c->querybuf = sdsRemoveFreeSpace(c->querybuf); } }