transfer from private server/git server
This commit is contained in:
27
docs/05_annexe_A2_estimation_charge.md
Normal file
27
docs/05_annexe_A2_estimation_charge.md
Normal file
@@ -0,0 +1,27 @@
|
||||
# Annexe A2 — Estimation de charge
|
||||
|
||||
## 4 scénarios d'usage
|
||||
|
||||
| Scénario | Utilisateurs simultanés | Workers Gunicorn | RAM recommandée | vCPU |
|
||||
|---|---|---|---|---|
|
||||
| Développement local | 2–5 | 1 (serveur Flask dev) | 512 Mo | 1 |
|
||||
| Usage promo ydays | 10–30 | 4 (formule 2×2+1≈5, arrondi à 4 threads×2) | 1 Go | 2 |
|
||||
| Déploiement département | 50–100 | 9 (2×4+1) | 2 Go | 4 |
|
||||
| Pic événementiel | 100–200 | 9–17 selon CPU disponible | 4 Go | 4–8 |
|
||||
|
||||
## 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).
|
||||
Reference in New Issue
Block a user