Что вызывает "Запрос был прерван после слишком долгого ожидания попытки обработать ваш запрос"? - PullRequest
0 голосов
/ 05 февраля 2020

Что вызывает «Запрос был прерван после слишком долгого ожидания попытки обработать ваш запрос»?

Кажется, это результат какого-то внутреннего тайм-аута, но я не знаю, где это настроено. В настоящее время мы используем автоматическое масштабирование, и эта ошибка была результатом временного увеличения числа задач в нашей очереди задач. Разве автоматическое масштабирование не создало больше экземпляров для обработки этого запроса?

Кроме того, если задача в облачных задачах завершается с ошибкой «Запрос был прерван после слишком долгого ожидания попытки обработать ваш запрос», повторяется ли эта задача, или он удален из очереди?

Редактировать: Я нашел проблему. Это была конфигурация для scailing в нашем app.yaml:

basic_scaling:
  max_instances: 2

1 Ответ

0 голосов
/ 05 апреля 2020

Я обнаружил это, когда проксировал, чтобы просмотреть узел Мунина с множеством графиков на бэкэнде f1-micro. Ответы будут с ошибкой 529, если они ждут дольше, чем (min|max)_pending_latency - возможно, он пытается создать новый экземпляр, потому что минимум нарушен, но обнаруживает, что не может.

По умолчанию это 5s. Вы можете установить в app.yaml максимум 15 с.

automatic_scaling:
  min_pending_latency: 15s
  max_pending_latency: 15s

Как только я это сделал, я перестал получать ошибки для запросов, ожидающих 6 с. Конечно, я уверен, что Google предпочел бы, чтобы вы увеличили количество экземпляров масштабирования или использовали более быстрый узел. Но, может быть, вы хотите масштабировать до одного или двух, или 15 с - приемлемая задержка для того, что вы пытаетесь сделать.

Для справки, мои полные app.yaml:

runtime: php73
service: munin
instance_class: F1

automatic_scaling:
  max_instances: 1
  min_instances: 0
  target_cpu_utilization: 0.95
  target_throughput_utilization: 0.95
  max_concurrent_requests: 80
  max_pending_latency: 15s

handlers:
- url: .*
  script: auto
  secure: always
...