Недавно я перенес свое приложение с версии 1 Cloud Endpoints Frameworks на версию 2 (стандарт Python для App Engine). Предположительно, одним из преимуществ является уменьшение задержки запросов. Игнорируя прогрев и/или запуск экземпляра бэкенда, кажется, что я получал необъяснимую задержку вне наблюдаемых журналов/статистики приложений, где-то от 300 мс до 2 секунд. Наблюдая за этим около недели, я, наконец, просто вернулся к примеру с эхом и развернул его в тестовом приложении и заметил точно такое же поведение.
Пример эха: https://cloud.google.com/endpoints/docs/frameworks/python/get-started-frameworks-python
Вот соответствующие настройки экземпляра в моем app.yaml:
runtime: python27
env: standard
threadsafe: true
instance_class: B2
basic_scaling:
idle_timeout: 900s
max_instances: 2
Вот 3 запроса к API через curl с интервалом в несколько секунд. Тестовое приложение не должно делать ничего другого:
MacBook-Pro$ curl -H "Content-Type: application/json" -X POST -d '{"content":"hello world"}' https://testtictactoe-164905.appspot.com/_ah/api/echo/v1/echo -w "@curl-format.txt"
{
"content": "hello world"
}
time_namelookup: 0.005
time_connect: 0.019
time_appconnect: 0.152
time_pretransfer: 0.152
time_redirect: 0.000
time_starttransfer: 0.263
--------
time_total: 0.263
MacBook-Pro$ curl -H "Content-Type: application/json" -X POST -d '{"content":"hello world"}' https://testtictactoe-164905.appspot.com/_ah/api/echo/v1/echo -w "@curl-format.txt"
{
"content": "hello world"
}
time_namelookup: 0.005
time_connect: 0.020
time_appconnect: 0.144
time_pretransfer: 0.144
time_redirect: 0.000
time_starttransfer: 0.613
--------
time_total: 0.613
MacBook-Pro$ curl -H "Content-Type: application/json" -X POST -d '{"content":"hello world"}' https://testtictactoe-164905.appspot.com/_ah/api/echo/v1/echo -w "@curl-format.txt"
{
"content": "hello world"
}
time_namelookup: 0.005
time_connect: 0.021
time_appconnect: 0.145
time_pretransfer: 0.145
time_redirect: 0.000
time_starttransfer: 1.028
--------
time_total: 1.028
Вот статистика приложения для первого 0,263-секундного запроса (всего 48 мс): Вот часть записи журнала для 0,263-секундного запроса: < /а>
Вот статистика приложения для 1,028-секундного запроса (всего 504 мс):
Вот часть записи журнала для 1,028-секундного запроса
Вот задержка экземпляра за последний час:
- Почему фактическая задержка моего запроса намного выше, чем показано в журналах и статистике приложения?
- Является ли эта дополнительная служебная задержка до 600 мс, которая кажется полностью неподконтрольной мне, просто ожидаемой частью выполнения запросов к конечным точкам облака Google?
- Почему эта задержка так сильно колеблется при работе с одним экземпляром и очень небольшим количеством входящих запросов?