ACK сервера Dropwizard, затем FIN, ACK, ведущие к 502

В последнее время серверная часть моего приложения возвращала повышенный уровень ошибок 502.

Для контекста, сервер находится за Amazon Elastic Load Balancer и запускает Dropwizard (для справки вот документация по конфигурации Dropwizard).

Я захватил захват пакета для 502-го запроса и увидел следующую схему:

  1. ELB -> Сервер [PSH, ACK]
  2. Сервер -> ELB [ACK]
  3. (30 мс пауза)
  4. Сервер -> ELB [FIN, ACK]
  5. ELB -> Сервер [FIN, ACK]
  6. Сервер -> ELB [ACK]

Единственное, что я могу вывести из этого потока tcp, это то, что поток-акцептор принял запрос (таким образом, ACK в 2) и не смог ничего с ним сделать (таким образом, FIN, ACK в 3). Мы пытались возиться с acceptorThreads, idleTimeoutи даже acceptQueueSize (последнее основано на отличном сообщении в блоге с описанием аналогичной проблемы), но все безрезультатно. Наши метрики активных запросов показывают, что мы даже не близки к насыщению пула, поэтому для обработки этого запроса должен быть доступный поток. Есть идеи, где еще искать?

0 ответов

Другие вопросы по тегам