Dear experts, We are having a powerful server (48 cores, four disks and 512 GB RAM) providing the services. >From my laptop (2 cores - 4 threads), we start to consume the public services. In order to bench the throughput of our public service provider, we just simply consume a very basic method (an Object receiving method, sending object from consumer and provider receives it, no storage or cache is invoked after that). The Object size is only 1K.
We use Dubbo protocol for our service provider. We noticed that: the consumer does not seem to consume to the second core of my laptop (it only consumes one full core). This results in a throughput of 4000 requests per second. To prove that our laptop can reach higher throughput, we run the second process of consuming our public service. With two processes running simultaneously, we can reach the throughput of 7500 request per second, and almost double the CPU usage, in total. Our consumer implementation is multiple threads. So we don't think the implementation is the issue. We suspect that some configuration is needed to improve the performance and concurrency. For the above results, we just use the default configuration of Dubbo. Do you have any best practice example for improving the performance and concurrency of consumer? If yes, could you please enlighten us? Thank you guys in advance. Best regards Tien Dat PHAN
