Caching OSM tiles - how to not overload backends?
tranxene50
tranxene50 at openvz-diff-backups.fr
Tue Jun 16 22:21:22 UTC 2020
Hello!
Many thanks for your answers! :-)
@Dridi:
You are right, writing a specific VMOD would be the ideal solution but
unfortunately I am not qualified for the job. ^^
By the way, I would like to thank all the people who are working hard to
enhance and maintain Varnish.
This software is absolutely awesome!
@Xavier:
Before considering HAProxy, I searched if quick and dirty hacks were
possible with iptables to limit simultaneous connexions and tc to shape
the traffic.
But, after a quick reading of the documentation of HAProxy, it became
clear that - as you said - it is a reliable solution.
So, thanks the for the hint!
Have a great day!
Le 16/06/2020 à 00:17, Xavier Leune a écrit :
> Hello,
>
> @tranxene50 if implementing a vmod can be very challenging, using
> haproxy can be a great solution here. Please refer to this blog post:
> https://www.haproxy.com/fr/blog/four-examples-of-haproxy-rate-limiting/ (or
> in french ;)
> https://www.haproxy.com/fr/blog/four-examples-of-haproxy-rate-limiting/ ).
> The very first step is about setting a maximum connections number and
> a queuing. Using haproxy as your backend would require low engineering
> and a minimum overage.
>
> Regards,
>
> Le lun. 15 juin 2020 à 20:02, Dridi Boukelmoune <dridi at varni.sh> a écrit :
>
>
> Bonsoir,
>
> Unfortunately we don't have any sort of queuing on the backend side,
> so besides implementing your own backend transport from scratch in a
> VMOD there is currently no solution.
>
> Cordialement,
> Dridi
>
> On Sun, Jun 14, 2020 at 2:32 AM tranxene50
> <tranxene50 at openvz-diff-backups.fr
> <mailto:tranxene50 at openvz-diff-backups.fr>> wrote:
> >
> > Hello!
> >
> > Please forgive my bad English, I live in France.
> >
> > Summary: how to cache - with Varnish - Open Street Map PNG
> images without overloading OSM tiles servers?
> >
> > The question seems related to Varnish backends and
> ".max_connections" parameter.
> >
> > A far as I know, if ".max_connections" is reached for a backend,
> Varnish sends 503 http errors.
> >
> > I understand the logic but would it be possible to queue these
> incoming requests and wait until the selected backend is really
> available?
> >
> > backend a_tile {
> > .host = "a.tile.openstreetmap.org
> <http://a.tile.openstreetmap.org>";
> > .port = "80";
> > .max_connections = 2;
> > }
> >
> > If Varnish have, let's say 100 incoming requests in 1 second,
> how can I handle this "spike" without overloading the backend?
> >
> > All my google searches were "dead ends" so I think the question
> is poorly formulated.
> >
> > Note 1 : using [random|round_robin] directors could be a
> temporary solution
> > Note 2 : libvmod-dynamic is great but does not limit backend
> simultaneous connexions
> >
> > Many thanks for your help!
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://www.varnish-cache.org/lists/pipermail/varnish-misc/attachments/20200617/c3d3d2ad/attachment.html>
More information about the varnish-misc
mailing list