Ideally, the number of threads directly correlates with 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.
The number of threads do not usually have a linear relationship to the
message throughput. The relationship is more logarithmic. Which 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.
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