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.