On Fri, 2013-07-19 at 00:29 -0700, boundabout wrote: > We have observed two issues, possibly with a common cause, with threading in > qpid 0.18. > > Issue 1 - Using the C++ broker on an IBM M4, performance is very poor (and > CPU utilisation very high) unless the size of the thread pool is reduced by > setting worker-threads to a small number. I believe the default is to create > one more thread than the number of logical cores, which for this box is 24. > So the question here is why having a lot of threads could increase CPU > loading. I wondered if it might be that threads were being moved between > cores, causing a lot of cache invalidation, but setting hard affinity > indicates that this is not the case.
One issue that we have observed is that running on multiple sockets doesn't give such high performance as running on a single socket. Some of the best performance can be got by setting the process/thread affinity so that you are using the usual n+1 rule but limiting the threads to run on the CPUs in a single socket. My presumption here is that the memory hierarchy matters a lot and that invalidating 2nd/3rd level caches messes up performance. As to the client issue you are having - I don't think it is especially related to the broker issue, but there may be a general resemblance if you are using a lot of connections/Listeners. Andrew --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
