Comments 6
App Engine теперь и время работы инстансов по-другому считает. Из всего времени жизни инстанса учитывается только время обработки запросов (с 15-минутным интервалом). Подогрев приложения по крону может стать сильно невыгодным.
Графики из тестового приложения:
По потреблению памяти видно, что инстанс жил почти 5 часов, в то время, как учтенное «платное» время составило 15 минут.
Графики из тестового приложения:
По потреблению памяти видно, что инстанс жил почти 5 часов, в то время, как учтенное «платное» время составило 15 минут.
как теперь подогревать приложения?
Я тоже отключил cron job который подогревал мое приложение, т.к. несколько экземпларов приложения работали сутками и съедали порядка 48 часов.
Можете дать более детальное пояснение к графикам — почему экземпляр приложения (instance) проработал 5 часов, а в GAE учелся всего 1 час?
Можете дать более детальное пояснение к графикам — почему экземпляр приложения (instance) проработал 5 часов, а в GAE учелся всего 1 час?
Исследуя новые тарифные планы обратил внимание, что в моих приложениях за рамки бесплатных квот выходит два параметра — количестко экземпляров приложения и Datastore Reads. При этом мое приложение посещается не более 50 раз в день, и при этом плата за параматр Datastore Reads берется в размере 7 центов (~ $2/мес).
Суть приложения в том, что оно берет товары и выводит их пользователю. Даже на самом простом хостинге такое приложение написанное на Django + MySQL выдерживало бы большие нагрузки в рамках выделенных квот. И стоило бы это дешевле.
Поделитесь своим опытом, как уменьшить количество чтений из хранилища данных. Какие использовать методики? Что влияет на количество чтений? Как его уменьшить?
Суть приложения в том, что оно берет товары и выводит их пользователю. Даже на самом простом хостинге такое приложение написанное на Django + MySQL выдерживало бы большие нагрузки в рамках выделенных квот. И стоило бы это дешевле.
Поделитесь своим опытом, как уменьшить количество чтений из хранилища данных. Какие использовать методики? Что влияет на количество чтений? Как его уменьшить?
Самое очевидное — кэшировать данные в memcache. Перед запросом в хранилище проверять, если ли кэш и если нет, добавлять при извлечении из хранилища.
Да, это вариант. Но с мемкешем в ГАЕ тоже есть проблемы. Когда мы оптимизировали taxivs.com мы начали кешировать порции обработанных результатов в мемкеш. И все было отлично на локальном и тестовом сервере с маленькой нагрузкой.
Когда мы выкатили на продакшн это изменение, обратили внимание что один инстанс пишет данные в мемкеш, а другие инстансы не видят данные в мемкеше в течение какого-то времени. При попытке записать данные из других инстансов, само собой разумеется, вываливалось предупреждение мол такая ячейка в мемкеше уже занята. Но мы то уже сформировали данные для записи в мемкеш, дернули базу, нагрузили сервер. Получилась очень неприятна ситцация. Насколько я знаю, эта ситуация до сих пор актуальна.
Что мне отвелили в google group? Сказали что да, есть такое. Сказали что можно самому работать через низкоуровневое API с мемкешем. И все.
Да, кстати у меня есть несколько тикетов (баг репортов) которые я отписал в App Engine issue tracker. У некоторых репортов даже есть прикрепленный diff который нужно взять и применить в проекте. Некоторые баг репорты висят уже полтора года, они помеченные как подтвержденные. Но действий со стороны команды App Engine нет, к сожалению. Меня даже посещают сомнени, а действительно ли App Engine является Open Source проектом, или это просто лейба для красоты, мол мы такие хорошие. Выводы делайте сами.
Когда мы выкатили на продакшн это изменение, обратили внимание что один инстанс пишет данные в мемкеш, а другие инстансы не видят данные в мемкеше в течение какого-то времени. При попытке записать данные из других инстансов, само собой разумеется, вываливалось предупреждение мол такая ячейка в мемкеше уже занята. Но мы то уже сформировали данные для записи в мемкеш, дернули базу, нагрузили сервер. Получилась очень неприятна ситцация. Насколько я знаю, эта ситуация до сих пор актуальна.
Что мне отвелили в google group? Сказали что да, есть такое. Сказали что можно самому работать через низкоуровневое API с мемкешем. И все.
Да, кстати у меня есть несколько тикетов (баг репортов) которые я отписал в App Engine issue tracker. У некоторых репортов даже есть прикрепленный diff который нужно взять и применить в проекте. Некоторые баг репорты висят уже полтора года, они помеченные как подтвержденные. Но действий со стороны команды App Engine нет, к сожалению. Меня даже посещают сомнени, а действительно ли App Engine является Open Source проектом, или это просто лейба для красоты, мол мы такие хорошие. Выводы делайте сами.
Sign up to leave a comment.
Вышла версия 1.5.4