TGViewer
Make. Build. Break. Reflect. Make. Build. Break. Reflect. @makebreakreflect · 1.37K subscribers
Post #68 487
"хей, у нас что-то с сервисом на проде, сможешь потраблшутить? Потом обсудим бюджет и оплату часов, сейчас надо понять что не так у нас. Что-то с SQS, очереди растут"

Ну пока супруга не видит, что работаю в выходные, пойду гляну🤣

Первым делом вижу, что всё так, очередь растёт и никто не читает.
https://1drv.ms/i/s!AhrWCTJApEtgjL9P66anxphCc0XgYA?e=Ie8O1F
Идём по конфигам смотреть кто должен читать очередь.
Ага, POD с именем webhook-*.
Смотрим сколько их
>k get pods | grep webhook | wc -l
50

Ок, а сколько у нас в HPA/KEDA
>ky hpa webhook |grep -A1 -i maxre
maxReplicas: 50

Ага, упёрлись в максимум. А чо у нас триггер? Раз тут HPA, а не KEDA, то значит ресурсы, а не количество мессаджей.
>ky hpawebhook | grep -A6 -i metrics
metrics:
- resource:
name: cpu
target:
averageUtilization: 85
type: Utilization

В любом случае не важно что триггер - реплик итак уже 50. Всё, максимум.

Ок, что делает данный сервис, смотрим по коду:
- поллит sqs очередь, процессит и отправляет в RDS какие-то апдейты
Судя по значению в переменной ендпойнта - подключение идёт через RDS proxy (фу, опять он), это видно по названию.
Смотрим настройки RDS max connection - default по типу инстанс тайпу.
Смотрит настройки прокси, ничего необычного.
resource "aws_db_proxy_default_target_group" "this" {
db_proxy_name = aws_db_proxy.rds_proxy.name
connection_pool_config {
connection_borrow_timeout = 120
max_connections_percent = 80
max_idle_connections_percent = 20
}
}

Хм. смотрим нагрузку БД - всё ок.
https://1drv.ms/i/s!AhrWCTJApEtgjL9RXf8WRAW5oWUVyA?e=imAk16
Ничего сверхъестественного.

Первая мысль - а давай лупану hpa max replicas 100 вместо 50!! 🦍
Ну конечно же эту мысль сразу отбросил, так как х2 увеличение клиентов может банально положить базу. Там же какие инсёрты есть.
Да и странно это вообще выглядит - 50 подов не могу обработать какое-то вшивое количество сообщений(на момент траблутинга всего 151.000)?
Там не рокетсайнс, просто процессинг мессаджа и всё, алё.

Ок, давайте смотреть что на прокси.
https://1drv.ms/i/s!AhrWCTJApEtgjL9TS18jflKYNPp8_w?e=58iUjv
А там чётко всё.

Так давай пойдём считать настройки laravel horizon:
- тайауты айдл
- количество воркеров
- количество подов
- какой поллинг тайм
и так далее, в коде и настройках самого сервиса и гите.

Тут крик супруги ТЫ ТАМ ЧО ОПЯТЬ РАБОТАЕШЬ ЧТО-ЛИ????

Тактически перекатываюсь в другой экран windows ДА Я ТУТ ПАШКОВСКОГО СМОТРЮ, У НЕГО ВТОРОЙ ВЫПУСК ИЗ КУБЫ)))НУ ТЫ ЧО))
и начинаю думать судорожнее, да что не так то, давай без арифметики.
А может быть такое, что 50 подов со своими воркерами тупо заняли весь пул(на них выделенный) и им просто не хватает?
Ну тогда быстро решений несколько:
- увеличить количество max_connections_percent
- уменьшить connection_borrow_timeout
- увеличить количество maxreplicas HPA (но это теоретически может положить базу)
- семь бед один ресет

Перекатываюсь обратно и быстро грохаю все поды, а чо вы мне сделаете
>k delete pod -l=app=webhook

И та-дам!
Видим, что сбросив пулл на прокси мы практически мгновенно начинаем вычитывать очередь.
https://1drv.ms/i/s!AhrWCTJApEtgjL9Vyy6q2lsEK_AQwA?e=65qTxE
https://1drv.ms/i/s!AhrWCTJApEtgjL9X7WSdHh45PrU2-g?e=DGjEHi

Итог:
- а чего было не знаю, надо в арифметику в будние дни смотреть, наверняка в воркерах ошибка и там на условные 10 читки идёт 5 коннекшнов и оно просто херово сконфигурено
- иногда рестарт ок, если не персистент дата
- меня так и не спалили, что работал 🤣
- вообще надо бы проверить сколько max k8s clusters - чтобы не упёрлись в пределы
- вообще все sqs-related PODs надо перетащить на KEDA + trigger
О примерном конфиге я писал в другом чате https://t.me/kubernetes_ru/875330

Трекаешь 2 часа😂
Можно идти дальше Пашковского смотреть.

#aws #troubleshooting #одинденьизжизни
  • 😁 5
  • 👍 3
  • ❤ 1
More from @makebreakreflect
  1. Sep 25, 2026#пятница Ждём, чо. А вообще да, заебали эти охринительно полезные новости с невероятными д…
  2. Sep 25, 2026#kubernetes - https://laravel-news.com/laravel-health-kubernetes-prometheus Жаль, что тако…
  3. Sep 24, 2026Но стоит взять задачу из смежной области, где общее понимание есть, а глубокой экспертизы…
  4. Sep 23, 2026В удивительнейшее время живём. - https://typesafe.ai/blog/introducing-system-one-models-an…
  5. Sep 22, 2026#aws #elasticache #redis #kubernetes #troubleshooting #devops #sre #longread Ничего не пре…
  6. Sep 18, 2026Вся эта неделя была очень странной. Опус отупел до уровня 3 модели. Фейбл сжигает токены б…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →