Files
loadtest/History/2026-08-21-annotation-tests.md

45 lines
2.7 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 2026-08-21 — LoadTest: тесты лимита тела на http-12 (k8s-4-sandbox), аннотация не помогла
_Дата: 2026-08-21. Инстанс: `http-12.containerk8s.dev.nubes.ru` (k8s-4-sandbox-nubes-ru)._
_Конфиг: образ `naeel/loadtest:v2.0.1`, одна аннотация `nginx.ingress.kubernetes.io/proxy-body-size: 1024m`, CPU 100, mem 200._
## Итог
Аннотация `proxy-body-size: 1024m` на ingress-ресурсе **НЕ решает** обрыв тел >~64КБ.
Лимит стоит на **внешнем входном шлюзе платформы** (вне кластера, до ingress-nginx).
## Замеры /messages (внешний URL, curl, сырое тело)
| Размер | Результат |
|---|---|
| 60КБ | 200 (0.39с) |
| 64КБ | 200 (0.46с) |
| 68КБ | **000** (10.3с) |
| 84КБ | 200 (0.6с) |
| 100КБ ×3 | **000** (10.2с) все три |
| 512КБ | **000** (10.2с) |
| 1МБ | **000** (10.2с) |
| 10МБ | **000** (10.7с) |
## Выводы
- Граница случайная в зоне ~64-84КБ (68КБ рвётся, 84КБ проходит) — как в diag-2026-08-18.
- Всё ≥100КБ — стабильный обрыв ~10.2с (HTTP 000, TTFB=0).
- Картина идентична замеру БЕЗ аннотации → аннотация ingress не влияет на внешний шлюз.
- Кластерные аннотации (proxy-body-size, таймауты, request-buffering) до внешнего шлюза не достают.
## Дальше
- Обход: чанкованная передача (Transfer-Encoding: chunked, чанки по 32КБ).
- Или тикет на платформу (поднять лимит на входном шлюзе).
## Тест chunked (Transfer-Encoding: chunked, чанки по 32КБ) — ТОЖЕ ОБРЫВ
| Размер | Результат |
|---|---|
| 100КБ | RemoteDisconnected, 9.6с |
| 512КБ | SSLEOFError, 11.3с |
| 1МБ | SSLEOFError, 14.6с |
| 10МБ | SSLEOFError, 9.6с |
Вывод: chunked НЕ обходит шлюз. Время обрыва ~10-15с не пропорционально размеру
→ фиксированный таймаут внешнего шлюза на приём тела (аналог ~50с на iot-naeel,
но ~10с на общем кластере). Способ передачи (Content-Length/chunked) не влияет.
Решение — только на стороне платформы (тикет: поднять таймаут/лимит на входном шлюзе),
либо дробление на отдельные запросы <64КБ (меняет протокол).