What Is the Performance Loss of Mesher?
The service mesh technology uses network traffic hijacking to manage inter-service traffic. In addition to the performance loss in internal logic processing of Mesher, service mesh also causes extra conversion between the user mode and kernel mode (the CPU consumes extra resources). Compared with the latter, the former has little impact on performance. Therefore, the performance loss depends on the size of the payload transmitted over the network. For example, the size of the header and body affects the HTTP transmission speed. Latency of an end-to-end calling of Mesher is 1 ms. For example, if Mesher performance loss is added to the latency in an actual service calling, the total latency is 4 ms longer. However, such a latency is acceptable to the user.
The following table lists the performance test results before and after Mesher is used. The payload is small, that is, the character string helloworld. However, certain code is added to increase the computing time of the server to simulate the service code execution time.
Metric |
Before |
After |
---|---|---|
TPS |
1749 |
1496 |
Latency |
2.8 ms |
3.34 ms |
CPU |
50% |
100% |
Concurrency |
5 |
5 |
The preceding results show that the performance loss of Mesher is low. The performance bottleneck lies in the service code. If the payload content is increased, the performance deteriorates further.
It is recommended that this technology be used to call services during initial technical selection and POC to test the real performance loss.
ServiceComb Engines FAQs
- How Do I Perform Local Development and Testing?
- How Can I Handle a Certificate Loading Error?
- What If the Header Name Is Invalid?
- What Is the Performance Loss of Mesher?
- Why Is "Version validate failed" Displayed When I Attempt to Connect to the Service Center?
- Why Is "Not enough quota" Displayed When I Attempt to Connect to the Service Center?
- What Should I Do If the Service Registration Fails After IPv6 Is Enabled for the Exclusive ServiceComb Engine with Security Authentication Enabled?
- What Is Service Name Duplication Check?
- Why Do I Have to Define Service Contracts?
- Why Are Microservice Development Framework and Netty Versions Unmatched?
- What Do I Need to Know Before Upgrading an Exclusive ServiceComb Engine?
- What Must I Check Before Migrating Services from the Professional to the Exclusive Microservice Engine?
- Why Is "Duplicate cluster name" Displayed?
- Error Message "the subnet could not be found" Is Displayed When the Access Address Fails to Be Processed During Engine Creation
- Why Is Error "does not match rule: {Max: 100, Regexp: ^[a-zA-Z0-9]{1,160}$|^[a-zA-Z0-9][a-zA-Z0-9_\-.]{0,158}[a-zA-Z0-9]$}"}" Reported?
- What Should I Do If SpringCloud Applications Fail to Connect to the Configuration Center of ServiceComb Engine 2.x?
- Why Could My the Global Configuration Not Be Modified?
- Obtain Configurations Failed
Feedback
Was this page helpful?
Provide feedbackThank you very much for your feedback. We will continue working to improve the documentation.See the reply and handling status in My Cloud VOC.
For any further questions, feel free to contact us through the chatbot.
Chatbotmore