I am considering using AppEngine for deploying a webapp which I am developing. As part of my investigation into the AppEngine platform I have been checking the response time for simple requests. To this end, I have written a simple PING servlet:
@SuppressWarnings("serial") public class Ping extends HttpServlet { @Override public void doGet(@SuppressWarnings("unused") HttpServletRequest xiReq, HttpServletResponse xiResp) throws IOException { xiResp.setContentType("text/plain"); xiResp.getWriter().println("PONG"); } } I have then written a java program to make a request every second to this servlet and time how long it takes to complete the request. Fetching the page content uses the following code. private static String getPageContent(String url) throws IOException { String result = null; InputStream webStream = new URL(url).openStream(); BufferedReader reader = new BufferedReader(new InputStreamReader(webStream)); result = reader.readLine(); reader.close(); return result; } Every 3 minutes my monitor script outputs data in the following format: date,num_reqs,num_failedreqs,avg_reqtime,num_normreqs,avg_normreqtime,num_latereqs,avg_latereqtime normrequests are all requests which take less than 500ms to complete latereqs are all requests which take longer than 500ms to complete failreqs are any which throw an IO exception during the download or if the content received is not equal to "PONG" My output for the last ~20 minutes is as follows. Thu Nov 25 10:04:01 GMT 2010,300,0,186,295,171,5,1093 Thu Nov 25 10:09:28 GMT 2010,300,0,191,292,173,8,842 Thu Nov 25 10:14:52 GMT 2010,300,0,184,295,167,5,1177 Thu Nov 25 10:20:15 GMT 2010,300,0,182,294,168,6,876 Thu Nov 25 10:25:46 GMT 2010,300,0,172,298,167,2,827 This shows that in each 5 minute period there are between 2 and 8 "late" requests taking an average of between 827 and 1177ms to complete. This compares with the following output from the same period running against the same servlet on a micro instance running on Amazon EC2. Thu Nov 25 10:03:53 GMT 2010,300,0,177,300,177,0,0 Thu Nov 25 10:09:20 GMT 2010,300,0,179,299,178,1,583 Thu Nov 25 10:14:43 GMT 2010,300,0,176,299,175,1,545 Thu Nov 25 10:20:07 GMT 2010,300,0,176,299,175,1,531 Thu Nov 25 10:25:37 GMT 2010,300,0,181,298,178,2,669 This shows far fewer "late" requests and the response time for these slow requests is much lower. I am making my requests from a server based in the UK. My Amazon EC2 instance is running in "US East". I don't know where Google is running my AppEngine instance. Can I do anything to improve the consistency of AppEngine response times or is the variance I am seeing normal for AppEngine? -- 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-j...@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.