This is an interesting issue. Hopefully someone at Google has considered this when making changes to the scheduler.
"Instance death after 9k requests" is a known behavior of GAE (well, known if you read these forums - I don't think there is any official documentation). As a wild guess on my part, it's probably related to loadbalancing hot instances across machines - as long as instances keep moving, any single machine is statistically unlikely to be stuck with multiple hot instances for long. Yeah, when a multithreaded appserver can hit the 9k limit in a few minutes, this approach probably needs to be rethought out. I would assume they're working on it. Jeff On Fri, Jul 1, 2011 at 6:03 AM, Juha K <juha.kosk...@gmail.com> wrote: > Hi, > > I've been testing possible memory leak in my app using JDO. I created a > small app with two servlets, the other servlet creating one small JDO entity > and the other servlet creating an entity with Objectify. Running the test > with JMeter I've realised the memory usage grows quite a bit when using JDO > (same can be seen in profiler with dev server too). With Objectify the > memory usage grows a little BUT it seems that GAE kills the instance as soon > as it has got 9000 requests. > > I've run the (objectify) test using threaded and non-threaded mode. With > non-threaded I'm sending about 3-4 requests per second which are being > handled by single instance. It takes almost 40 minutes to reach 9000 > requests and then instance memory usage is about 52-58mb and latency > 22-27ms. And when 9000 requests are reached the instance is being killed. > When I run the app threaded, I can send about 20 requests per second and it > takes just over 7 minutes to reach that 9000 request limit (memory usage is > usually at 53mb) and the instance is killed. With upcoming pricing model I > pay for at least 15 minutes for each instance? Why does GAE kill my instance > at exactly 9000 requests (no matter how soon the 9000 requests are reached > and no matter what is the memory usage or latency)? > > I was closely watching my production app and the same happens also there. > > This is output of instances in the control panel for my test app just > before reaching 9000 requests: > QPS*Latency*RequestsErrorsAgeMemoryAvailability20.70026.8 ms897600:07:2151.8 > MBytes[image: Dynamic Icon]Dynamic > and this just seconds second later: > *Instances *[image: > help]<http://code.google.com/appengine/docs/adminconsole/instances.html> > QPS*Latency*RequestsErrorsAgeMemoryAvailability0.0500.0 ms500:00:0140.3 > MBytes[image: Dynamic Icon]Dynamic > > -- > 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/-/EHmdh2ldi84J. > 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.