Performance of transports is really hard to benchmark, what is most important is knowing what performance is actually needed and to verify that based on the kind of dummy load.
In this scenario the cause for slow SQS performance was because:
- the virtual machine didn’t have good network specifications
- the code didn’t configure the
- the maximum concurrency wasn’t increased severely to compensate for the network latency
NServiceBus isn’t the limiting factor, the performance usually is limited due to resource limitations like network/disk bandwidth and/or latency.
When benchmarking in the cloud, make sure that virtual machine profiles have very good network or disk IOPS specifications. The latter usually increases only if you also provision a very large disk.
What transport is better depends on what requirements you have. Performance is one of the factors but in current times, the transports themselves usually aren’t the limiting factor. The following video also explains some differences of transports. Amazon SQS isn’t mentioned bus behavior wise it is similar to Azure Storage Queues.