L = λ × W
La plus utile équation en planification de capacité
Pour toute file d'attente stable, peu importe sa structure interne : L = λ × W, où :
- L = nombre moyen d'éléments dans le système (en cours de traitement ou en attente)
- λ (lambda) = taux moyen d'arrivée (éléments par unité de temps)
- W = temps moyen passé par élément dans le système
La lecture géométrique : tracez λ sur un axe et W sur l'autre. Le produit L est la surface du rectangle qu'ils forment. La planification de capacité se déroule à l'intérieur de ce rectangle.
Pourquoi cela compte : deux des trois quantités déterminent la troisième. Mesurez le débit et la latence, vous savez l'occupation. Mesurez l'occupation et le débit, vous savez la latence. La loi est robuste : elle s'applique aux demandes web, aux tables de restaurant, aux files d'attente des supermarchés et aux pipelines CPU sans modification.
Trois exemples concrets :
- Un service web gère 200 req/s avec une latence moyenne de 50 ms (0,05 s). L = 200 × 0,05 = 10 en cours de traitement.
- Une cafétéria sert 60 clients par heure avec un temps d'attente moyen de 15 minutes (0,25 h). L = 60 × 0,25 = 15 clients à l'intérieur.
- Une pool de backends gère 1500 req/s avec une latence moyenne de 200 ms (0,2 s). L = 1500 × 0,2 = 300 en cours de traitement.
Implication de dimensionnement : le nombre de travailleurs / threads / connexions d'un niveau doit être au moins L pour rester à jour. Moins, cela signifie une croissance de la file d'attente.
Pourquoi la latence explose au-delà de 80% d'utilisation
La courbe la plus importante en opérations
Répartition de l'utilisation du plot sur l'axe des x (0 % à 100 %) et temps moyen d'attente sur l'axe des y. La forme est l'une des courbes les plus importantes en matière de planification des capacités.
Le modèle de files d'attente M/M/1: pour un système avec des arrivées de Poisson (aléatoires) et des temps de service exponentiels (aléatoires), le temps moyen d'attente:
W_q = ρ / (μ × (1 - ρ))
où ρ est l'utilisation (0 à 1) et μ est le taux de service.
La forme de la courbe:
- À ρ = 0,5 (50 % d'utilisation), le temps d'attente est faible (1 temps de service).
- À ρ = 0,7 (70 % d'utilisation), le temps d'attente est d'environ 2,3 temps de service.
- À ρ = 0,8 (80 % d'utilisation), le temps d'attente est d'environ 4 temps de service.
- À ρ = 0,9 (90 % d'utilisation), le temps d'attente est d'environ 9 temps de service.
- À ρ = 0,95 (95 % d'utilisation), le temps d'attente est d'environ 19 temps de service.
- À ρ = 1,0 (100 % d'utilisation), le temps d'attente est infini.
Le genou: autour de 80 % d'utilisation, la courbe se courbe brusquement. En dessous du genou, la capacité est confortable ; au-dessus, la latence augmente plus rapidement que l'utilisation.
Lecture pratique: viser 70 % d'utilisation pour un état stationnaire, jamais 100 %. Les 30 % de 'marge' ne sont pas gaspillés ; c'est le prix de la latence limitée.
Dimensionnement au-dessus du genou
Deux scénarios :
Scenario A : 10 réplicas fonctionnant à 60 % de CPU. Latence p99 = 100 ms.
Scenario B : même flotte fonctionnant à 90 % de CPU en raison de la croissance du trafic. p99 = 600 ms.
Même flotte, même code, seule l'utilisation a changé.
Dimensionnement et déclenchement ensemble
Synthèse
Vous pouvez maintenant appliquer la loi de Little en la représentant sous forme de rectangle, lire la courbe d'attente et son genou, et relier les deux aux décisions de capacité.
Appliquez les deux.
Un niveau de backend gère 2 000 req/s avec une latence moyenne de 50 ms par capacité de réplique de 80 req/s pour 70% de CPU. Facteur de surcharge 2x; vous souhaitez survivre à 3 échecs de perte de répliques simultanés.
Notes Complémentaires
Notes Complémentaires
Cette leçon de géométrie reformule l'enseignement principal Échelle Horizontale Étatless en géométrie quantitative.
La prochaine note complémentaire, geometry_of_ingress_egress_separation, reformule le découpage de la frontière réseau en graphe bipartite avec un sommet de découpe que le découpage supprime.
Bien fait.