Caching OSM tiles - how to not overload backends?

tranxene50 tranxene50 at openvz-diff-backups.fr
Wed Jun 17 14:23:15 UTC 2020


Hello Damien.

Thank you for your proposal, I appreciate!

But, as I can see/read, Fastly operates the same way as Varnish when the 
backend is overloaded (it rejects new connections):

https://docs.fastly.com/en/guides/common-503-errors#error-503-backendmax_conn-reached

The "Waiting room" could be an option (but this is not what I try to 
achieve because it throttles clients):

https://developer.fastly.com/solutions/patterns/waiting-room/

However, I prefer to stick to GPL or Open-Source projects and HAProxy 
seems perfect to regulate the traffic sent to the backend. ;-)

Regards.

Le 17/06/2020 à 15:08, Damien Wetzel a écrit :
> Hi Tranxène50
> I'm a reseller of Fastly in France a cdn based on a fork of varnish 2
> maybe it could be a solution to minimize the backend traffic you receive somehow ?
> i can make you test if needed
> akamai has a solution they call waiting room, to regulate the traffic to the origin,
> i think this is the kind of things to try to achieve ?
> Best Regards,
> Damien
>
> tranxene50 writes:
>   > 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> 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";
>   >         >   .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!
>   >
>   >
>   > ----------------------------------------------------------------------
>   > _______________________________________________
>   > varnish-misc mailing list
>   > varnish-misc at varnish-cache.org
>   > https://www.varnish-cache.org/lists/mailman/listinfo/varnish-misc
>
-- 
tranxene50
tranxene50 at openvz-diff-backups.fr



More information about the varnish-misc mailing list