Hi Patrick,


> It would be nice to be able to control the usage of TCP_NODELAY. Right
> now it looks like haproxy immediately turns the flag on upon any
> frontend or server connection. When doing bulk data transfers, this can
> have a negative impact on performance.

HAProxy uses MSG_MORE to control whether or not the system merges segments,
so your large bulk transfer will still perform optimally. HAProxy is highly
optimized to do the right thing by default, I don't think there is any
benefit to gain here.

Do you have any reason to doubt haproxy's MSG_MORE handling?



> However I do not think this should be a global option. I would think
> this is an option best turned on and off by ACL rules. You may only
> have certain URLs which return bulk data, or maybe you want to turn it
> off when entering the data phase, or perhaps only when Content-Length
> is greater than a certain amount.
>
> I think there are numerous uses for this feature, but the only other
> request I saw was a mailing list entry from a few months ago
> (http://marc.info/?l=haproxy&m=139176184632622) to which the response
> was to use the http-no-delay option. When I looked into it, this is not
> controlling TCP_NODELAY, and thus not relevant.

Well, it may not directly control TCP_NODELAY, but it controls directly or
indirectly MSG_MORE, so its still relevant as it does affect Nagle and
possibly other things.

Also see:
http://marc.info/?l=haproxy&m=132173719731861&w=2



> Thoughts?

I think there is nothing to gain here.



Regards,

Lukas


                                          

Reply via email to