I have a Google App Engine app using Java and Spring MVC 3.0. A lot of the time if it goes even 2 minutes without a request, then the next request is a loading request which takes about 12 seconds to respond to and uses about 5 seconds of CPU time. Sometimes it does a loading request even when there was no traffic for only one minute.
Google says once there is a steady flow of traffic to your site then you won't have to worry about it, but even if I had a steady flow, there would probably still be times when I went without traffic for 1 minute.
Is this a normal amount of idle time for the JVM instance to be deactivated?
EDIT: After investigating I found that JDO initialization is the part that takes the most amount of time (~6 seconds). And after I turned component-scan
off of spring, and manually specified the controllers, spring setup time went down to 1.5 seconds. If I don't use jdo on a loading request, then loading request response time is a more reasonable ~3 seconds instead of ~12 seconds.
What would be nice is we could serialize the DispatcherServlet to the memcache.
There has been a fix by the Google team, and now loading requests are only happening every 10 minutes or so, which is much more reasonable.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With