Max request rate for a single Java instance, limited to 1000?

90 views
Skip to first unread message

de Witte

unread,
Sep 4, 2011, 6:31:45 PM9/4/11
to google-a...@googlegroups.com
I'm trying optimize our application to the max, so far so good, but...

It appears that the threadpool of the Java instance is limited to 18, for which ~10 are used to handle requests.

Our average latency is 100ms. 1 minute / 100ms = 600 requests, x10 threads, so a single instance should be able to handle 6000 requests a minute.

According to the logs the limit is 1000 request a minute. A higher rate will trigger a new instance regardless the average latency time. regardless any settings.

Is this correct or can we get a higher request rate per minute?

Otherwise there is no cost involved reason to optimize if your latency is below 600ms. (Hence, frontend is most of the time waiting (idle) for the backend)

Another side effect of this limitation is that the the Min Pending Latency setting has no effect.


Rajkumar Radhakrishnan

unread,
Sep 5, 2011, 1:55:57 AM9/5/11
to google-a...@googlegroups.com
de Witte : good to know that you can serve so many requests with a single instance.

Google :
So, a single well written Java app can go serve up to 10 requests concurrently with their free instance, while early adopters of Google App Engine who started with Python can serve just 1 request per instance. 

And above this free quota, the same Java app can serve 10 more requests for every new instance, while Python apps have to be happy that there is an half-priced instance introduced after outcry on the forums, because multi-threading support cannot be made available before the new billing changes kicks in.

Having been a Java developer who had to pick up Python to work with GAE, this is a great way to show your love back to your early adopters, Google. Thanks !!

Regards,
R.Rajkumar




--
You received this message because you are subscribed to the Google Groups "Google App Engine" group.
To view this discussion on the web visit https://groups.google.com/d/msg/google-appengine/-/o3uDifrLVaEJ.
To post to this group, send email to google-a...@googlegroups.com.
To unsubscribe from this group, send email to google-appengi...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.



--
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Build online database applications, over Google App Engine.
iFreeTools Creator - http://creator.ifreetools.com


Nick Johnson

unread,
Sep 5, 2011, 8:10:42 PM9/5/11
to google-a...@googlegroups.com
Hi,

The reason you're seeing the results you are is because of the CPU limit. The number of threads that will run in parallel is affected by how much CPU each thread uses - there's no point starting more threads if the CPU is already fully utilized, it would just slow the existing requests down. The good news is, you're fully utilizing your appserver. If you want to increase the concurrency further, you'd need to reduce the amount of CPU time you're consuming.

-Nick Johnson

--
You received this message because you are subscribed to the Google Groups "Google App Engine" group.
To view this discussion on the web visit https://groups.google.com/d/msg/google-appengine/-/o3uDifrLVaEJ.
To post to this group, send email to google-a...@googlegroups.com.
To unsubscribe from this group, send email to google-appengi...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.



--
Nick Johnson, Developer Programs Engineer, App Engine


Reply all
Reply to author
Forward
0 new messages