Skip to content

node-accelerator v3.2 — na-diagnose --retrans (TCP retransmit root-cause) - #10

Merged
jestivald merged 1 commit into
mainfrom
v3.2-retrans-deep
Jun 15, 2026
Merged

node-accelerator v3.2 — na-diagnose --retrans (TCP retransmit root-cause)#10
jestivald merged 1 commit into
mainfrom
v3.2-retrans-deep

Conversation

@jestivald

Copy link
Copy Markdown
Owner

Диагностика причин TCP-retransmits (read-only, поведение защиты/тюнинга не меняется).

🔬 na-diagnose --retrans [--window N]

Докапывается до причины retrans, а не только до факта. За одно окно семплинга (по умолч. 20с):

  • retrans-rate + TX/RX-перекос (out/in — download vs upload через ноду);
  • разбивка по типу: TCPTimeouts / TCPLostRetransmit / TCPSackRecovery / TCPSlowStartRetrans / TCPBacklogDrop / …;
  • хвост сокетов с retrans + распределение по бакетам;
  • реальный congestion-control на проводе (ss -tin: bbr vs cubic) — ловит «настройка bbr, а сокеты на cubic»;
  • дропы TX-тракта: qdisc (dropped/overlimits/requeues), softirq NET_RX/TX, NIC ring (ethtool -S drop/err);
  • accept-queue (listen backlog), TCP-фичи (sack/dsack/frto/recovery/min_snd_mss/mtu_probing);
  • вердикт: MSS-коллапс / qdisc-overflow / путь.

Все инструменты опциональны (guard на command -v ss/tc/ethtool), окно --window 5..300.

✅ Проверка

Валидирован live на реальной ноде: корректно показал retrans 2.35% (TX-heavy, BBR на проводе, qdisc чист → причина = путь) и вердикт MSS-коллапс (min_snd_mss=48 + collapsed sockets). CI smoke прогоняет --retrans --window 5. shellcheck --severity=error чист.

Концепция вдохновлена наработками коллеги-оператора (по его просьбе — без имени).

🤖 Generated with Claude Code

`na-diagnose --retrans [--window N]` — докопаться до ПРИЧИНЫ retrans, а не только
факта. За одно окно семплинга: rate, TX/RX-перекос, разбивка по типу
(Timeouts/LostRetransmit/SackRecovery/SlowStart/BacklogDrop), хвост сокетов +
распределение, реальный CC на проводе (bbr vs cubic), дропы TX-тракта
(qdisc/softirq/NIC ring), accept-queue, TCP-фичи + вердикт (MSS-коллапс/qdisc/путь).

Валидирован live: на реальной ноде корректно показал retrans 2.35% (TX-heavy,
BBR на проводе, qdisc чист) и вердикт MSS-коллапс (min_snd_mss=48 + collapsed).
ci: smoke прогоняет --retrans --window 5. docs: CHANGELOG v3.2 + README.
Концепция вдохновлена наработками коллеги-оператора (по его просьбе — без имени).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@jestivald
jestivald merged commit 0138c04 into main Jun 15, 2026
5 checks passed
@jestivald
jestivald deleted the v3.2-retrans-deep branch June 15, 2026 20:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant