I just found out that the performance of the Synapse Pass Through transport is highly sensitive to the RcvBufferSize of the IO reactors (especially when mediating very large messages). Here are some test results. In this case, I'm simply passing through a 1M message through Synapse to a backend server, which simply echoes it back to the client. Notice how the execution time of the scenario varies with the RcvBufferSize of the IO reactors.
RcvBufferSize (in bytes) Scenario Execution Time (in seconds)
8192 (Synapse default) 25.9
Is this behavior normal? If so does it make sense to change the Synapse default buffer size to something larger (e.g. 16k)?
Interestingly I see this difference in behavior on Linux only. I cannot see a significant change in behavior on Mac.
Appreciate your thoughts on this.