Files
gesthub/docs/05_annexe_A2_estimation_charge.md
2026-08-21 09:12:02 +02:00

28 lines
1.2 KiB
Markdown
Raw 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.
# Annexe A2 — Estimation de charge
## 4 scénarios d'usage
| Scénario | Utilisateurs simultanés | Workers Gunicorn | RAM recommandée | vCPU |
|---|---|---|---|---|
| Développement local | 25 | 1 (serveur Flask dev) | 512 Mo | 1 |
| Usage promo ydays | 1030 | 4 (formule 2×2+1≈5, arrondi à 4 threads×2) | 1 Go | 2 |
| Déploiement département | 50100 | 9 (2×4+1) | 2 Go | 4 |
| Pic événementiel | 100200 | 917 selon CPU disponible | 4 Go | 48 |
## Formule appliquée
`workers = 2 × CPU + 1` (formule standard Gunicorn). Configuration retenue
en production : 4 workers, classe `gthread`, 2 threads par worker
(`web/Dockerfile` : `gunicorn --workers=4 --worker-class=gthread
--threads=2 --bind=0.0.0.0:5000 app:app`), dimensionnée pour le scénario
« usage promo ydays », le plus représentatif de l'usage réel actuel du
projet.
## Disponibilité
`restart: unless-stopped` sur tous les services Docker (redémarrage
automatique en cas de crash), healthcheck MariaDB avec 6 tentatives
espacées de 10 s avant que Flask ne tente de se connecter (`depends_on:
condition: service_healthy` dans `docker-compose.yml`), TLS/HTTP2 géré
automatiquement par Caddy (renouvellement Let's Encrypt sans intervention).