mirror of
https://github.com/haproxy/haproxy.git
synced 2026-02-10 14:23:37 -05:00
The server lock was taken preventively for anything in health_adjust(), including the static config checks needed to detect that the lock was not needed, while the function is always called on the response path to update a server's status. This was responsible for huge contention causing a performance drop of about 17% on 16 threads. Let's move the lock only where it should be, i.e. inside the function around the critical sections only. By doing this, a 16-thread process jumped back from 575 to 675 krps. This should be backported to 2.3 as the situation degraded there, and maybe later to 2.2. |
||
|---|---|---|
| .. | ||
| haproxy | ||
| import | ||