I posted this on GAE for Java group, but I hope to get some answers here quicker 🙂
I decided to do some long-run performance tests on my application. I
created some small client hitting app every 5-30 minutes and I run 3-5
of threads with such client.
I noticed huge differenced in response times and started to
investigate issue. I found reason very quick.
I am experiencing same issues as described in following topics:
Uneven response time between connection to server to first byte sent
Application instances seem to be too aggressively recycled
I am using Springframework, it tkes around 18-20s to start app
instance, which is causing response times to take from 1s (when
requests hits running app – very rare) to 22s when fresh application
is created.
Is there any solution for this?
I was thinking about creating most basic servlet performing critical
tasks (serving API call) and leave UI as is.
But then I would loose all benefits of Springframework.
Is there any solution for this?
After solving (hacking) numerous constrains of App Engine which I hit
while developing my app that is the one I think will make me move out
of App Engine… that’s simply to much to all the time think how to
win with GAE problems than how to solve my application problems…
Any help?
Regards
Konrad
I know of some people having a keep-alive thing running in order to have an instance of their app always running. I mean, have a client that sends a request every X seconds so your app doesn’t get recycled.
This is a quick thing to implement but seems to go against the spirit of the platform. Make your numbers and check if it is worth it.
Another option would be to refactor your application to make use of more lazy-loading than it does at the moment so it doesn’t take that long to kick off.
I don’t know if you have any other option apart from these 2.