On Thu, Jun 2, 2022 at 9:06 AM Fredrik Hallenberg <megahal...@gmail.com>
wrote:

> Hi, my application tends to get a lot of short lived incoming connections.
> Messages are very short sync messages that usually can be responded with
> very little processing on the server side. It works fine but I feel
> that the performance is a bit lacking when many connections happen at the
> same time and would like advice on how to improve it. I am using qpid
> proton c++ 0.37 with epoll proactor.
> My current design uses a single thread for the listener but it will
> immediately push incoming messages in on_message to a queue that is handled
> elsewhere. I can see that clients have to wait for a long time (up to a
> minute) until they get a response, but I don't believe there is an issue on
> my end as I as will quickly deal with any client messages as soon as they
> show up. Rather the issues seems to be that messages are not pushed into
> the queue quickly enough.
> I have noticed that the pn_proactor_listen is hardcoded to use a backlog of
> 16 in the default container implementation, this seems low, but I am not
> sure if it is correct to change it.
> Any advice apppreciated. My goal is that a client should never need to wait
> more than a few seconds for a response even under reasonably high load,
> maybe a few hundred connections per seconds.
>

I would try increasing the backlog.  16 seems low to me as well.  Do you
know if any of your clients are re-trying the connection setup because they
overran the server's backlog?

-Ted

Reply via email to