Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Spring Boot with Reactor Netty Performance Issue right after application started #1150

Open
cjr333 opened this issue Jun 12, 2020 · 6 comments
Labels
area/perf This belongs to the performance theme or subset

Comments

@cjr333
Copy link

cjr333 commented Jun 12, 2020

I wrote a spring boot application and sample api. I found out the performance between 1st race(right after application started) and 2nd race(I think it is warmed up) was remarkably different. I guess it is caused some resources initialization - threads, direct byte buf, etc. But I can't find out exact cause and solution. I'm looking forward to your help and I want to know how many people had same experience.

[Specific Info]
Spring boot: 2.2.4
Reactor Netty: 0.9.4
Sample api: just return Mono.just(Collections.singletonList(1));
Test condition: request 3000 TPS during 30 seconds
Test Result: response time

  • 1st race(right after application started): mean 574ms, p99 10004ms
  • 2nd race: mean 5ms, p99 8ms
@violetagg
Copy link
Member

@cjr333 Would you be able to give us a reproducible example (please use the latest releases)?

@violetagg violetagg added the for/user-attention This issue needs user attention (feedback, rework, etc...) label Jun 13, 2020
@cjr333
Copy link
Author

cjr333 commented Jun 15, 2020

Thank you for your immediate reply.
I simplified my app and push on my github repository. It is very simple and only have one api "/sample". ( https://github.com/cjr333/spring-boot.git )
First I tested with Spring boot 2.2.4 and get same result. And then I updated Spring boot to the latest release(2.3.1) and tested, but also get same result.
When I benchmark java apps performance, the overhead of class loading by class loader affect the result. So warm-up is needed. Does this case have same issue?? (I'm wondering)

@violetagg violetagg added status/need-investigation This needs more in-depth investigation and removed for/user-attention This issue needs user attention (feedback, rework, etc...) labels Jun 19, 2020
@ericbottard
Copy link
Contributor

@cjr333 Could you please elaborate how you measured response time (ie what tool and config was used), that would be great.

@violetagg violetagg added this to the 0.9.x Maintenance Backlog milestone Jul 14, 2020
@violetagg violetagg added the area/perf This belongs to the performance theme or subset label Jul 15, 2020
@cjr333
Copy link
Author

cjr333 commented Jul 30, 2020

@ericbottard
I used gatling open source version for measurement. (https://gatling.io/)
100 clients were used so each client made 30 requests per sec.

@violetagg violetagg removed the status/need-investigation This needs more in-depth investigation label Nov 19, 2020
@violetagg violetagg self-assigned this Nov 19, 2020
@violetagg violetagg modified the milestones: 0.9.x Maintenance Backlog, 1.0.x Backlog Nov 19, 2020
@violetagg violetagg removed their assignment Jan 27, 2021
@douglashg
Copy link

How can I configure Spring 3 to use quic?

@violetagg
Copy link
Member

@douglashg I don't think that in Spring Boot there is an integration with reactor-netty-incubator-quic

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/perf This belongs to the performance theme or subset
Projects
None yet
Development

No branches or pull requests

4 participants