Сервис службы моего приложения написан на Go. У меня есть код, который подключается к облачному хранилищу данных еще до того, как сервер прослушивает порт. Существует один запрос Projection, который занимает около 500 мсек, читая только 4 объекта. Возможно ли, чтобы первое взаимодействие с хранилищем данных имело большую задержку, поскольку необходимо установить соединение? В любом случае можно уменьшить задержку соединения с хранилищем данных? Кроме того, есть ли какая-либо разница в выполнении этого вызова базы данных перед прослушиванием порта по сравнению с выполнением его в запросе на разогрев (это автоматически масштабируемый экземпляр).
Подобно высокой начальной задержке для Cloud Datastore, я вижу аналогичноешаблон для облачных задач. Первоначальное создание задачи может достигать 500 мс, но даже последующие могут быть в любом месте от 200 до 400 мс. Это у нас - центральное. На самом деле я рассматривал вопрос о переносе обновления базы данных в фоновую задачу, но в целом я вижу, что задержка создания задачи будет более или менее такой же, как при выполнении транзакции для чтения и обновления данных, не приносящей никакой чистой выгоды.
Наконец, время запуска экземпляра обычно составляет от 2,5 до 3 секунд, при этом основной вызов вызывается примерно через 2 секунды. Время запуска моего приложения - вышеупомянутая стоимость запроса проекта 500 мс и ничего больше. Таким образом, независимо от того, насколько я оптимизирую запуск своего приложения, я должен допустить дополнительную задержку около 2 секунд?
Обратите внимание, что нагрузка на систему очень мала, поэтому эти проблемы не могут быть из-за большого объема.
Обновление: файлы развертывания, запрошенные Мигелем (это для тестовой среды, исследующей характеристики производительности. Развертывание Prod будет более щедрым для экземпляров)
приложение по умолчанию:
service: default
runtime: go112
instance_class: F1
automatic_scaling:
min_instances: 0
max_instances: 1
min_idle_instances: 1
max_idle_instances: 1
min_pending_latency: 200ms
max_pending_latency: 500ms
max_concurrent_requests: 10
target_cpu_utilization: 0.9
target_throughput_utilization: 0.9
inbound_services:
- warmup
Бэкэнд-приложение:
service: backend-services
runtime: go112
instance_class: B1
basic_scaling:
idle_timeout: 1m
max_instances: 1