Движок приложения дороже, когда он медленнее? - PullRequest
20 голосов
/ 12 августа 2010

В последнее время было довольно много случаев, когда механизм приложений работал медленнее.В какой-то степени это понятно с архитектурой их облачной платформы.Я не говорю о новых экземплярах серверов - просто запросы к теплым серверам.Я также имею в виду процессор, а не API хранилища данных, но меня это тоже удивляет.

Похоже, что в эти медленные периоды я получаю намного больше желтых предупреждений о своих запросах - говоря, что я используюмного процессора.Конечно, они требуют больше времени для завершения в этот период.Что меня беспокоит, так это то, что в эти медленные периоды мой оплачиваемый ЦП, кажется, работает с повышением.

Итак, чтобы быть ясным - когда движок приложения работает быстро, запрос может завершиться за 100 мс.В медленный период для одного и того же запроса может потребоваться более 1 с.Тот же URI, то же кэширование, тот же путь обработки, то же хранилище данных, те же индексы - намного больше ЦП.Желтые предупреждения, насколько я понимаю, относятся к оплачиваемому использованию ЦП, и их гораздо больше, когда движок приложения работает медленнее.

Кажется, это создает странную ситуацию, когда мое приложение стоит дороже, когдапроизводительность движка приложения хуже.Это означает, что Google зарабатывает больше денег, чем хуже работает платформа (вплоть до того момента, когда она терпит неудачу или клиенты уходят).Может быть, я все неправильно понял, и это не сработало - но если это сработает так, то, как клиент, давление и противовесы там все неправильные.Это не говорит о каких-либо неправильных действиях со стороны Google - просто то, что отношения между этими двумя вещами кажутся неправильными.

Кажется, что алгоритм Google выглядит примерно так: «Если я отдаю задание на обработкуCPU и запускаю мои часы, затем останавливаю их, когда работа возвращается, я получаю оплачиваемую цифру CPU ».то есть он не измеряет работу процессора вообще.Конечно, это время должно быть разделено на число одновременно выполняемых заданий обработки плюс некоторое дополнительное, чтобы покрыть дополнительное переключение контекста.Я уверен, что это трудно измерить - возможно, в этом причина.

Полагаю, вы могли бы поспорить, что справедливо, что вы платите больше, когда механизм приложений пользуется высоким спросом, но это делает бюджетирование практически невозможным -вы не можете генерировать статистику, например, «100 пользователей стоят мне 1 доллар в день», потому что это может измениться по целому ряду причин, включая механизм приложений, который включает больше клиентов, чем реально может выдержать инфраструктура.Если Google переподписывает движок приложений, то все клиенты платят больше - это еще одно отношение, которое не звучит правильно.Несомненно, расходы Google должны понизиться на * , поскольку они набирают больше клиентов, и эти клиенты используют больше ресурсов - в зависимости от эффекта масштаба.

Стоит ли ожидать, что два идентичных запроса в моем приложении будут стоить мне примерноодно и то же количество каждый раз, когда они запускаются - независимо от того, сколько движок приложения настенного времени требуется, чтобы фактически завершить их?Я неправильно понял, как это работает?Если нет, есть ли причина, по которой я не должен беспокоиться об этом в долгосрочной перспективе?Есть ли документация, которая проясняет ситуацию?Приветствия,

Колин

Ответы [ 3 ]

3 голосов
/ 13 августа 2010

Это было бы более сложно, но они могли бы изменить алгоритм выставления счетов, чтобы быть функцией нагрузки. Или, возможно, они могли бы нормализовать измерения ЦП на основе производительности аналогичных вызовов в прошлом.

Я согласен, что это создает проблемы для разработчиков.

0 голосов
/ 17 августа 2013

Этот вопрос кажется старым, и я думаю, что схема ценообразования, должно быть, изменилась ...

Google App Engine взимает плату за " экземпляров часов ", а экземпляры, созданные в настоящее время, отображаются вGAE консоль.А Google предоставляет корректировки, чтобы вы могли решить, какая цена будет зависеть от времени ожидания для вашего приложения.

https://developers.google.com/appengine/docs/adminconsole/performancesettings

Я заметил, что, если внешний интерфейс зависнет, столкнувшись с общим внутренним ресурсом, GAE будетпородить кучу случаев, чтобы уменьшить задержку.И вы будете платить за эти часы, даже если задержка / пропускная способность не улучшатся.Корректировки, которые я упомянул, похоже, помогают в этом.

0 голосов
/ 12 августа 2010

Да, это правда.Это облом.Кроме того, им требуется более секунды для запуска моего Java-приложения (за которое мне выставлялся счет) каждый раз, когда они решали, что мой сайт пользуется низким спросом и не нуждаются в ресурсах.

В итоге я использовалcron автоматически пингует мой сайт каждую минуту, чтобы он оставался теплым ... выполнение всей потраченной впустую работы сделало мой счет более дешевым, поскольку у него не было времени запуска, вместо этого у него просто было много пингов 2ms ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...