При выполнении нагрузочных тестов против моего приложения я вижу очень последовательное время отклика. Когда на GAE существует постоянный уровень нагрузки, среднее время отклика становится все меньше и меньше. Но я хочу иметь такую же согласованность в других приложениях, которые получают гораздо меньше запросов в секунду. В этих случаях мне не нужно поддерживать более ~ 3 запросов в секунду.Достижение согласованного времени отклика в GAE?
Reading the docs заставляет меня думать, что увеличение числа минимальных случаев простоя должен привести к более последовательному времени отклика. Но даже тогда клиенты все равно будут видеть более высокие времена отклика, каждый раз, когда планировщик GAE считает, что требуется больше экземпляров. Я ищу установку, где пользователи не видят эти начальные медленные запросы.
Когда я увеличиваю количество минимальных экземпляров idle до 1, я хочу, чтобы GAE использовал только один экземпляр-резидент. По мере увеличения нагрузки он должен воспитывать и разминать новые (динамические) экземпляры. Only once they are warmed up, GAE должен отправлять запросы на них. Но, судя по ответам, кажется, что запросы клиентов поступают в динамические экземпляры по мере их появления. В результате эти запросы занимают много времени (до 30 секунд).
- Может ли это случиться, если мой прогрев код является неполным?
- Могут ли первые вызовы динамических экземпляров быть такими медленными, потому что они связаны с еще не прогретыми кодами кода?
Эта проблема не возникает во время нагрузочных тестов или когда достаточно людей используют приложение. Но мои тестовые среды практически непригодны для использования клиентами, когда никто еще не использует приложение, например. утром.
Спасибо!
В основном я хочу зарезервировать некоторые экземпляры, которые действуют как бэкэнды. GAE должен по-прежнему выполнять балансировку нагрузки, но пользователи должны постоянно ударять по длинному экземпляру. Возможно, это означает, что я не хочу, чтобы GAE динамически масштабировалась в моей тестовой среде. – Ingo