Le 19/11/2019 à 13:20, Илья Шипицин a écrit :
hello,

how is that supposed to work ?

https://github.com/haproxy/haproxy/blob/master/doc/configuration.txt#L6225

does it buffer the entire body ? does it use memory / hdd for buffering ?

how are those buffers allocated ? what if I do not have a lot of RAM ?


Hi Ilya,

As mentioned in the documentation, HTTP processing is delayed waiting the whole body is received or the request buffer is full. The condition about the first chunk of a chunked request is only valid for the legacy HTTP mode. It was removed in 2.1, so the documentation is a bit outdated on this point.

BTW, this means that HAProxy waits for the entire request's body before processing it, if this one is smaller than a buffer. Otherwise, it waits the request buffer is full. In this case, only a part of the payload will be available. But there is no extra memory allocated to store the entire body.

About the buffers allocation, as for most of other objects dynamically allocated in HAProxy, it uses memory pools to do so. The buffer size if 16k by default and may be tuned via the "tune.bufsize" global directive.

Hope it helps,
--
Christopher Faulet

Reply via email to