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.

Reply via email to