Thanks for the link. This doesn't directly address the main point I'm worried about though:
* Why does any user-facing request ever sit in the pending queue for an instance that is warming-up when there is a perfectly good instance sitting there? My problem is not that GAE is spinning up new instances. My problem is that users are waiting for it. There's an instance sitting there with a low wait time in the pending queue - why is GAE shunting new requests to instances with an effective 10-20s wait time instead? Jeff On Tue, Feb 28, 2012 at 12:00 PM, Francois Masurel <f.masu...@gmail.com>wrote: > Hi Jeff, > > Check this post : > https://groups.google.com/forum/#!msg/google-appengine/3t5muVhXajg/SSFU-udjIhwJ > > > Setting "Idle instances" to automatic, as Johan Euphrosine suggested, > seems to have solved the problem, at least temporarily (I was at 1 minimum > and 1 maximum before). > > I'm just a bit scared now to get over my daily quotas. > > François > > > On Tuesday, February 28, 2012 5:34:36 PM UTC+1, Jeff Schnitzer wrote: >> >> There's been a lot of discussion of the scheduler behavior in Pythonland, >> but not much about it's "eccentricities" in Javaland. >> >> I have a threadsafe=true Java app. Let's say every request completes in >> exactly 1s. Settings are: idle instances min 1 max 1, latency auto/auto. >> Here is what I expect: >> >> * Instance1 starts up and becomes permanently resident >> * Instance1 serves concurrent requests up to some arbitrary CPU capcity >> * When Instance1 exceeds capacity: >> * Instance2 starts warming up >> * All requests remain in the pending queue for Instance1, getting >> processed at 1/s * concurrency >> * Instance2 is ready and starts processing new requests, sharing the >> load with Instance1 >> >> What I actually see (as far as I can determine): >> >> * Instance1 starts up and becomes permanently resident >> * Instance1 supports almost no concurrency. At most it's 2. (no, my >> app is not particularly compute intensive) >> * A new request comes in which for some reason can't be handled by >> Instance1: >> * Instance2 starts warming up >> * The new request is blocked on Instance2's pending queue, waiting >> 10-20s for Instance2 to be ready >> * In the mean time, Instance1 is actually idle >> * Another new request comes in and starts up Instance3 >> * Possibly this is while Instance2 is warming up >> * AFAICT, Instance1 is taking a coffee break >> >> The net result is that I have an idle website with 1 user (me) clicking >> around and I've already gotten multiple 20s pauses and three instances. >> Something is seriously wrong here. Whether or not it's rational to have >> so many instances started, pending requests shouldn't be shunted to >> non-warmed-up servers, right? >> >> I've tried upping the min latency to a high value to see if this improves >> the situation. If this works... shouldn't min latency *always* be as high >> as the startup time for an instance? >> >> I know it's been said before, but it needs to be said again... the >> guidance for scheduler configuration is really, really inadequate. >> >> Jeff >> > -- > You received this message because you are subscribed to the Google Groups > "Google App Engine for Java" group. > To view this discussion on the web visit > https://groups.google.com/d/msg/google-appengine-java/-/zULJyO6VtHwJ. > > To post to this group, send email to > google-appengine-java@googlegroups.com. > To unsubscribe from this group, send email to > google-appengine-java+unsubscr...@googlegroups.com. > For more options, visit this group at > http://groups.google.com/group/google-appengine-java?hl=en. > -- You received this message because you are subscribed to the Google Groups "Google App Engine for Java" group. To post to this group, send email to google-appengine-java@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en.