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.

Reply via email to