Mailing List Archive

Bad times in client but not backend side for not cached request
Hello everybody.

I have this weird issue with Varnish 5.0.0 on Debian 9.4 and maybe somebody
here can help me with it.

The thing is, I have this request:

https://somehost.com//cart/current_cart.json?clear_cart=false&_=1550491039254

It is always a miss in varnish (as it should be) and making only one, works
just fine.

But doing some performance testing the response times increases quickly.
For example, with 2 requests/s, after 4 or 5 request, the response time
begins to increase exponentially and after 20 request I have 11s of
latency, reaching 40s after 40 requests.

If I take out Varnish (sending the request from nginx to the app) it works
just fine. And looking at the varnish log, the "%T" format option in the
backend log keeps a response <=1s but in the client side I see the
incremental reponse times.

The request can't be cached so now I am keeping it out from varnish but I
don't like the idea of this exception in the configuration and I am worry
it could reproduce with other requests (in fact I have two other suspects)
so any idea or suggestion will be greatly appreciated.

Thanks for your time.


--
Rodrigo García Suárez
rodrigo.garcia@the-cocktail.com
679 141 132

The Cocktail
c/ Salamanca 17
28020 Madrid
(+34) 915 670 605

www > http://the-cocktail.com

--


Este mensaje se dirige exclusivamente a su destinatario. Puede contener
información confidencial sometida a secreto profesional o cuya divulgación
esté prohibida, en virtud de la legislación vigente. No está permitida su
divulgación, copia o distribución a terceros sin la autorización previa y
por escrito de The Cocktail. Si ha recibido este mensaje por error, le
rogamos nos lo comunique inmediatamente por esta misma vía y proceda a su
destrucción.


This message is intended exclusively for the individual or
entity to which it is addressed and may contain confidential or legally
privileged information, which may not be disclosed under current
legislation. Any form of disclosure, copying or distribution of this
message is strictly prohibited, save with written authorization from The
Cocktail. If you have received this message in error, please notify the
sender immediately by this way and delete all copies of the message.
Re: Bad times in client but not backend side for not cached request [ In reply to ]
Hi,

Is the ttl <= 0 when you return from vcl_backend_reponse? It looks like you
are telling varnish to cache, for 0 seconds.

The result is that it'll coalesce requests, but at the same time, can't
reuse the responses, so the backend requests are just serialized.

You have two ways to deal with that:
- if you know in vcl_recv that the request isn't cacheable, return(pass).
- if you discover the uncacheability in vcl_backend_response, set a
positive ttl, and set beresp.uncacheable to true. This will tell varnish to
remember to non coalesce requests for this object for the duration of the
ttl.

Note that this is already done in the built-in.vcl (
https://github.com/varnishcache/varnish-cache/blob/master/bin/varnishd/builtin.vcl)
that gets appended to your code when you load a vcl. However this only gets
executed if you don't return from the routine yourself.

Hope that helps,

On Fri, May 17, 2019, 05:03 Rodrigo García Suárez <
rodrigo.garcia@the-cocktail.com> wrote:

> Hello everybody.
>
> I have this weird issue with Varnish 5.0.0 on Debian 9.4 and maybe
> somebody here can help me with it.
>
> The thing is, I have this request:
>
>
> https://somehost.com//cart/current_cart.json?clear_cart=false&_=1550491039254
>
> It is always a miss in varnish (as it should be) and making only one,
> works just fine.
>
> But doing some performance testing the response times increases quickly.
> For example, with 2 requests/s, after 4 or 5 request, the response time
> begins to increase exponentially and after 20 request I have 11s of
> latency, reaching 40s after 40 requests.
>
> If I take out Varnish (sending the request from nginx to the app) it works
> just fine. And looking at the varnish log, the "%T" format option in the
> backend log keeps a response <=1s but in the client side I see the
> incremental reponse times.
>
> The request can't be cached so now I am keeping it out from varnish but I
> don't like the idea of this exception in the configuration and I am worry
> it could reproduce with other requests (in fact I have two other suspects)
> so any idea or suggestion will be greatly appreciated.
>
> Thanks for your time.
>
>
> --
> Rodrigo García Suárez
> rodrigo.garcia@the-cocktail.com
> 679 141 132
>
> The Cocktail
> c/ Salamanca 17
> 28020 Madrid
> (+34) 915 670 605
>
> www > http://the-cocktail.com
>
> Este mensaje se dirige exclusivamente a su destinatario. Puede contener
> información confidencial sometida a secreto profesional o cuya divulgación
> esté prohibida, en virtud de la legislación vigente. No está permitida su
> divulgación, copia o distribución a terceros sin la autorización previa y
> por escrito de The Cocktail. Si ha recibido este mensaje por error, le
> rogamos nos lo comunique inmediatamente por esta misma vía y proceda a su
> destrucción.
>
> This message is intended exclusively for the individual or entity to which
> it is addressed and may contain confidential or legally privileged
> information, which may not be disclosed under current legislation. Any form
> of disclosure, copying or distribution of this message is strictly
> prohibited, save with written authorization from The Cocktail. If you have
> received this message in error, please notify the sender immediately by
> this way and delete all copies of the message.
> _______________________________________________
> varnish-misc mailing list
> varnish-misc@varnish-cache.org
> https://www.varnish-cache.org/lists/mailman/listinfo/varnish-misc
>