CPU utilization often reaches 100% on grizzly http (REST) ​​server - JAVA8

We have a knitwear load server that uses grizzly HTTP server (GrizzlyHttpServerFactory). We recently migrated from java7 to java8. Since then, after servicing the requests smoothly for 1 hour or so,
- CPU utilization by our machine goes 100% (usually 5%, with very sparse peaks 40%)
- all HTTP requests to the server freeze.
- There are no exceptions to server logs.
- Themes started by the server continue to do their work and are not affected
- Apparently, only the http interface seems to be broken.
When the server restarts, the behavior disappears, but appears again after an hour.

When we moved back to java7, the server behaved well and no problem. So far we have switched to java7. But since we would like to go to java8 at some point in the future,
- Has anyone seen this happening in them? “Is there a way to debug this failure and get more information about debugging at the grizzly server level?”
(are there any command line flags that should be passed to the java -jar our_application_jar.jar command that can capture additional debugging information)
- Can anyone explain the reason why our grizzly behaves strangely using java8?
- Can we suspect that the JDK 1.8 NIO library is corrupted by a grizzly, but how can we do this?

Information about our machine / deployment
- ubuntu, aws m1 large
- Java application running as a unix service
- grizzly 2.8 (using grizzly http server)

+4
source share
1 answer

You need to use JProfiler. This will help you identify any performance issues and / or resources that your software might have. It's free for a limited time (should be enough to debug your software)

0
source

Source: https://habr.com/ru/post/1542643/


All Articles