AppEngine Response Time Variance

Я рассматриваю возможность использования AppEngine для развертывания разрабатываемого мной веб-приложения. В рамках своего исследования платформы AppEngine я проверял время ответа на простые запросы. С этой целью я написал простой сервлет PING:

@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");
  }
}

Затем я написал программу на Java, которая ежесекундно отправляет запрос этому сервлету и определяет время, необходимое для выполнения запроса. Для получения содержимого страницы используется следующий код.

private static String getPageContent(String url) throws IOException {
  String result = null;
  URL reqURL = new URL(url);
  URLConnection connection = reqURL.openConnection();
  connection.setConnectTimeout(30 * 1000);
  connection.setReadTimeout(30 * 3000);
  InputStream webStream =  connection.getInputStream();
  BufferedReader reader = new BufferedReader(new InputStreamReader(webStream));
  result = reader.readLine();
  reader.close();
  return result;
}

Каждые 3 минуты мой сценарий монитора выводит данные в следующем формате:

date,num_reqs,num_failedreqs,avg_reqtime,num_normreqs,avg_normreqtime,num_latereqs,avg_latereqtime

normrequests - это все запросы, выполнение которых занимает менее 500 мс. latereqs - это все запросы, выполнение которых занимает больше 500 мс. failreqs - это любые, которые вызывают исключение ввода-вывода во время загрузки или если полученный контент не равен "PONG"

Мои результаты за последние ~ 20 минут выглядят следующим образом:

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

Это показывает, что в каждом 5-минутном периоде есть составляют от 2 до 8 «поздних» запросов, для выполнения которых требуется в среднем от 827 до 1177 мс.

Для сравнения, следующий результат за тот же период, запущенный для того же сервлета на микро-экземпляре, работающем на 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

Это показывает гораздо меньшее количество «поздних» запросов, и время отклика на эти медленные запросы намного меньше.

Я делаю запросы с сервера, расположенного в Великобритании. Мой инстанс Amazon EC2 работает в регионе «Восток США». Я не знаю, где Google запускает мой экземпляр AppEngine. Это мой код, я хочу проверить, существует ли «Пуск». public static bool checkMachineType () {RegistryKey winLogonKey = Registry.LocalMachine ....

Как проверить наличие значения реестра с помощью кода C #? Это мой код, я хочу проверить, существует ли «Пуск».

public static bool checkMachineType()
{
    RegistryKey winLogonKey = Registry.LocalMachine.OpenSubKey(@"System\CurrentControlSet\services\pcmcia", true);
    string currentKey= winLogonKey.GetValue("Start").ToString();

    if (currentKey == "0")
        return (false);
    return (true);
}
72
задан Igor Brejc 10 July 2012 в 07:28
поделиться