apache / shenyu

Apache ShenYu is a Java native API Gateway for service proxy, protocol conversion and API governance.
https://shenyu.apache.org/
Apache License 2.0
8.41k stars 2.92k forks source link

Springcloud performance issue #5586

Open tswc1989 opened 2 months ago

tswc1989 commented 2 months ago

Is there an existing issue for this?

Current Behavior

During the testing process, we discovered a performance bottleneck in Shenyu. The test scenario was set up to use Jmeter to conduct a stress test on a Mock microservice, with specific conditions of simulating 100,000 requests from 1000 concurrent users. When directly connecting to the Mock service, the system achieved a high throughput of 8000 queries per second (QPS), with a 99th percentile latency of 81 milliseconds, demonstrating robust performance.  When conducting the same test through Spring Cloud Gateway, the QPS is over 5900, and the 99th percentile delay is 189 milliseconds.

However, when the same test was conducted through Shenyu gateway as a proxy for Spring Cloud, a significant performance degradation was observed. Specifically, the QPS dropped to just over 2700, while the 99th percentile latency soared to 593 milliseconds. This indicates that when routed through Shenyu, the system's speed in processing requests slowed down markedly, and the response time for most requests increased substantially.

Expected Behavior

The throughput of shenyu springcloud plugin can be improved

Steps To Reproduce

No response

Environment

OS:CentOS Linux release 7.7.1908 Hardware: 16C 128GB JVM parameters: Java server - Xmx4g - Xms4g - Xmn1g - Xss512k - XX:+DisableExplicitGC - XX: LargePageSizeInBytes=128m - XX:+UseFastAccessiorMethods - XX:+UseConcMarkSweepGC - XX:+CMSParallelRemarkEnable - XX:+UseCMSInitiatedOccupancyOnly - XX: CMSInitiatedOccupancyFraction=70

ShenYu version(s):
V2.6.1

Debug logs

No response

Anything else?

No response

moremind commented 1 month ago

enable shenyu springcloud cache

moremind commented 1 month ago

enable shenyu springcloud cache in shenyu bootstrap.yml