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