Threads

The number of threads ideally, directly correlates to the number of messages
processed concurrently. Any changes made to the number of threads will have an impact on
throughput. You can modify several different categories of threads but the primary one for
message throughput is processing threads.

Note: The number of threads do not usually have a linear relationship to the
message throughput. The relationship is more logarithmic, this is due to limitations or
overhead in DB, HW, M3 and others.

For example, if 10 threads generate 10 messages per second then 20 threads
might generate 15 messages per second.

Note: At some point, adding threads will decrease
throughput due to hardware resource limitations resulting in excessive context
switching.

The primary reason for having multiple threads is to negate IOPS waiting time
induced by M3, DB and the file system. The optimum setting depends on the three aforementioned
entities.