feat: Gunicorn + gevent (keepalive), bump 1.0.8→1.0.9
Deploy loadtest / validate (push) Waiting to run
Deploy loadtest / validate (push) Waiting to run
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
# Sonnet: противоречие — nginx 10/10, Flask raw то 10/10 то 2/10
|
||||
|
||||
## Данные без интерпретаций
|
||||
|
||||
### Тест 1: nginx:alpine через тот же VIP/ingress/порт
|
||||
100KB raw binary POST, 10 запросов, таймаут 2с: **стабильно 10/10**
|
||||
|
||||
### Тест 2: Flask (тот же ingress/VIP) — raw binary
|
||||
100KB raw binary POST, те же параметры:
|
||||
- Первый прогон: 10/10
|
||||
- Второй прогон (после редеплоя): 2/10
|
||||
- Третий прогон: 2/10
|
||||
|
||||
### Тест 3: Flask — URL-encoded form (base64)
|
||||
100KB base64 → 136KB POST: стабильно 2-5/10
|
||||
|
||||
### Тест 4: Flask изнутри кластера
|
||||
pod → VIP: 10/10 всегда
|
||||
pod → ingress service: 10/10 всегда
|
||||
|
||||
### Что пробовали
|
||||
- debug=False: 5/10
|
||||
- Gunicorn: 1/10 (хуже)
|
||||
- proxy_request_buffering on/off: 3-5/10
|
||||
- kube-vip nodeSelector/taint: не влияет
|
||||
- MSS clamping: не влияет
|
||||
- raw binary вместо form: то 10/10, то 2/10
|
||||
|
||||
## Инфра
|
||||
- Shturval 2.12.1, Cilium CNI
|
||||
- Flask 3.1.3, Werkzeug 3.1.8
|
||||
- nginx ingress, http2 on, proxy_request_buffering off
|
||||
- kube-vip ARP mode, 4 ноды, ingress hostPort на 2
|
||||
|
||||
## Вопрос
|
||||
Почему nginx:alpine через тот же ingress стабильно 10/10, а Flask raw binary — то 10/10, то 2/10?
|
||||
Что именно в цепочке ingress→Flask даёт такую нестабильность, если тело одно и то же (raw 100KB)?
|
||||
Может ли Werkzeug dev server иметь скрытый баг с keepalive/connection reuse, который проявляется случайно?
|
||||
Reference in New Issue
Block a user