Hi, Christopher!

Could you tell if these patches will be backported to haproxy 1.8 or not?

2018-04-11 20:06 GMT+03:00 Максим Куприянов <maxim.kupriya...@gmail.com>:

> Hi!
>
> Thank you very much for the patches. Looks like they helped.
>
> 2018-03-29 14:25 GMT+05:00 Christopher Faulet <cfau...@haproxy.com>:
>
>> Le 28/03/2018 à 14:16, Максим Куприянов a écrit :
>>
>>> Hi!
>>>
>>> I'm sorry but configuration it's too huge too share (over 100 different
>>> proxy sections). This is also the reason I can't exactly determine the
>>> failing section. Is there a way to get this data from core-file?
>>>
>>> 2018-03-28 11:18 GMT+03:00 Christopher Faulet <cfau...@haproxy.com
>>> <mailto:cfau...@haproxy.com>>:
>>>
>>>     Le 28/03/2018 à 09:36, Максим Куприянов a écrit :
>>>
>>>         Hi!
>>>
>>>         Yesterday one of our haproxies (1.8.5) with nbthread=8 set in
>>>         its config stuck with 800% CPU usage. Some responses were served
>>>         successfully but many of them just timed out. perf top showed
>>> this:
>>>            59.19%  [.] thread_enter_sync
>>>            32.68%  [.] fwrr_get_next_server
>>>
>>>
>>>     Hi,
>>>
>>>     Could you share your configuration please ? It will help to diagnose
>>>     the problem. In your logs, what is the values of srv_queue and
>>>     backend_queue fields ?
>>>
>>>
>> Hi,
>>
>> Ok, I partly reproduce your problem using a backend, with an hundred
>> servers and a maxconn to 2 for each one. In this case, I observe same CPUs
>> consumption. I have no timeouts (it probably depends on your values) but
>> performances are quite low.
>>
>> I think you're hitting a limitation of the current design. We have no
>> mechanism to migrate entities between threads. So to force threads wakeup,
>> we use the sync point. It was not designed to be called very often. In your
>> case, it eats all the CPU.
>>
>> I attached 3 patches. They add a mechanism to wakeup threads selectively
>> without any lock or loop. They must be applied on HAProxy 1.8 (it will not
>> work on the upstream). So you can check if it fixes your problem or not. It
>> will be useful to validate it is a design limitation and not a bug.
>>
>> This is just an experimentation. I hope it works well but I didn't do a
>> lot of testing. If yes, I'll then discuss with Willy if it is pertinent or
>> not to do the threads wakeup this way. But, in all cases, it will probably
>> not be backported in HAProxy 1.8.
>>
>> --
>> Christopher Faulet
>>
>
>
Thank you!
Maksim

Reply via email to