Hi List, I wanted to ask about an unexpected behavior I'm observing with the bandwidth limit filter. I'm not sure if it's a bug, a misconfiguration, or if I'm just misunderstanding.
Config: peers <snip> table bw-by-src type ipv6 size 25k expire 1h store bytes_out_rate(10s) frontend <snip> # Bandwidth filters # Limit to 50MB/10s filter bwlim-out by-src key src table pop_local/bw-by-src limit 50m # Limit other to 100MB/10s (temporarily higher limits) filter bwlim-out other-by-src key src table pop_local/bw-by-src limit 100m http-request set-bandwidth-limit by-src if is_first_thing http-request set-bandwidth-limit other-by-src if is_other_thing With this configuration, 99% of requests succeed, but approximately 1% of requests, especially requests made in isolation hang forever. The average payload in this config is between 50-100kB / request, but some requests would be quite small (< 1kB) or quite large (> 500kB). For example, a standard curl GET request returns the headers, but never the body (at least not in the first few seconds). We have a mix of HTTP/1.1, H2, and H3 front-end connections, with HTTP/1.1 on the backend. Does the 10s period create a problem? (The goal with that is to allow temporary bursts especially at initial connection with an average limit.) Do I need to add min-size (reading the code doesn't seem to imply it would help)? I may be misreading the docs, and it's just a bogus configuration. :) Thanks in advance for any help or ideas you all have! Best, Luke — Luke Seelenbinder Stadia Maps | Founder & CEO stadiamaps.com