Наш проект работает в стандартной среде Google App Engine с автоматическим масштабированием, настроенным, как указано ниже. В приложении включены запросы на разогрев, и мы используем службу конечных точек Google. Тем не менее, я столкнулся с проблемой задержки в другом сценарии ios. Среда: Java 8 , тип экземпляра: F4_1G Конфигурация для автоматического масштабирования: min-экземпляров: 2 max-одновременных запросов: 80 min-pending-latency: 6s max -nding-latency: 10 с
Я тестировал с JMeter с конфигурацией отправки 85 асинхронных запросов с периодом разгона 10 секунд . Из журналов приложений я могу заметить, что appengine занимает много времени для обработки запроса. Ниже приведены вопросы, которые у меня есть
1. Большинство запросов не выполняются из-за превышения времени. На рисунке 1 мы видим, что запрос занимает 88,2 секунды. Я знаю, что автоматическое масштабирование AppEngine имеет ограничение по времени ожидания 60 секунд. Но мы настроили автомасштабирование как минимум с 2 экземплярами, и для max-instance ограничений нет. Экземпляр AppEngine должен обрабатывать запрос, в противном случае AppEngine должен масштабироваться для обработки запроса. Почему этого не происходит? Image_1
При увеличении размера запрос занимает 43,6 секунды. На рисунке 2 мы видим, что запрос пришел в 20: 27: 01: 663 IST, а первая строка выполнения API начинается в 20: 27: 40: 407 IST.
Что происходит между временем? Могу ли я получить журнал за этот период? Image_2 После масштабирования последующие запросы также обрабатываются очень долго. Например, запрос API обычно выполняется в течение 2 секунд. На рисунке 3 мы можем заметить, что API занимает 42,4 секунды без процесса загрузки-запроса, а затем запрос приходит в 20: 27: 01: 728 IST. Первая строка выполнения API начинается в 20: 27: 40: 708 IST.
Что происходит между временем? Image_3