We are building web-applications with the Play! Framework. We get good performance out of the framework but we realize that some installations on the servers have high CPU usage.
A funny observation on a specific installation:
- The Application only checks Auth, selects one entry from a DB and returns it as an answer. (No Actors, no schedulers)
- The Application was not used anymore for a long time. (No request coming in for months)
- The CPU usage was very high.
- After restarting, the CPU usage got to almost 0.
We have uncommonly high CPU usage on other applications as well so we are trying to find out what possible causes could be. The paths we are currently following are:
- Is there some issue with the garbage collector? (We’ve read that the garbage collector could kick in too often and cause this)
- We’ve read about thread pools and blocking code. We understand that this could affect the performance of the application but we don’t see why the CPU usage should go high when using just one thread pool.
Currently we are setting up some test environment. But before going down a long path in the wrong direction, probalby someone can give us a hint in a direction we didn’t think yet?