mirror of
http://git.haproxy.org/git/haproxy.git/
synced 2024-12-23 13:17:16 +00:00
fc792694a6
Now, if a pool_alloc() fails for a buffer and if conditions are met based on the queue number, we'll try to get an emergency buffer. Thanks to this the situation is way more stable now. With only 4 reserve buffers and 1 buffer it's possible to reliably serve 500 concurrent end- to-end H1 connections and consult stats in parallel in loops showing the growing number of buf_wait events in "show activity" without facing an instant stall like in the past. Lower values still cause quick stalls though. It's also apparent that some subsystems do not seem to detach from the buffer_wait lists when leaving. For example several crashes in the H1 part showed list elements still present after a free(), so maybe some operations performed inside h1_release() after the b_dequeue() call can sometimes result in a new allocation. Same for streams, where the dequeue is done relatively early. |
||
---|---|---|
.. | ||
haproxy | ||
import | ||
make |