NetMsmqBinding Throughput RRS feed

  • Question

  • Hello,

    I've got a WCF service using the netmsmqbinding.  The service is stupid, it takes a message and saves it to a database, no processing in there.  My local load testing show that I can process about 1,000 messages per second with this service.  I removed the code to save to the database and this doesn't change the rate at which the service removes  messages from the queue, so this is not the limiting factor.

    The queue is local.  I've had a transactional queue and a non-transactional queue, this does not change the speed of processing. 

    Changing of the service throttling settings does not really change the throughput, I did have max concurrent calls, sessions, and instances all set to 1 at one point and this slowed it down significantly, but as I tweak these settings further and further up I approach my 1,000 messages/sec ceiling and never pass it.  Currently they're set at calls and sessions = 2000, instances 10,000.

    I've gone to the service behavior, trying out single, percall and persession.  I've tried the concurrency mode settings as single and multiple.  None of these change a thing for throughput.

    I'll back up about 30,000 messages and turn on this service, on a quad core cpu it uses about 50-60% cpu and about 60mb of my 8GB of memory. 

    So, what am I missing?  What can I do to squeeze out more throughput or is this some magic ceiling I've crossed?

    Wednesday, August 5, 2009 1:14 AM