45 lines
2.7 KiB
Markdown
45 lines
2.7 KiB
Markdown
# 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КБ (меняет протокол).
|