Files d'attente et dimensionnement
Ce que ce chapitre apporte 9 points
- Décrire une situation d'attente par ses arrivées, son service et sa discipline, et convertir une durée de service en rythme.
- Calculer le taux d'occupation, et dire pourquoi la file diverge dès qu'il atteint 1.
- Appliquer la loi de Little dans les deux sens, à un serveur comme à une équipe.
- Calculer le nombre de présents, le temps de réponse et l'attente en file d'un serveur unique, et expliquer pourquoi ils explosent avant la saturation.
- Comparer un serveur plus rapide et plusieurs serveurs derrière une file commune, selon ce que l'on mesure.
- Chiffrer l'effet de la variabilité, et nommer les leviers qui la réduisent.
- Écrire un engagement sur un centile, et le calculer.
- Dire ce que la disposition des barrières change à une file humaine, et ce qu'elle ne change pas.
- Identifier le goulet d'une chaîne, et reconnaître un biais d'inspection dans une mesure.
Un serveur qui traite dix requêtes par seconde et qui en reçoit neuf n'est pas « chargé à 90 % » au sens où l'on chargerait un camion à 90 %. Il est chargé au point où le nombre de demandes présentes devient neuf fois plus grand qu'à moitié charge, et où le temps de réponse a quintuplé. Cette non-linéarité n'est pas une bizarrerie : c'est la loi qui gouverne tout système où des demandes arrivent au hasard.
Le chapitre précédent s'arrêtait sur une question : pourquoi un système qui tenait la charge hier répond-il deux fois plus lentement pour cinq points de trafic de plus ? La réponse est dans la file d'attente, celle des processus prêts qu'il désignait comme le vrai signal, et la loi exponentielle qu'il a installée en est le point de départ. Cette file est celle du chapitre d'algorithmique sur les piles et les files, et l'arbitre qui décide qui passe est celui du chapitre de systèmes d'exploitation sur les processus et l'ordonnancement.
Le chapitre suit un service de paiement qui traite au plus 10 demandes par seconde, et la question que son exploitant se pose avant un jour de soldes : faut-il une machine plus rapide, une deuxième machine, ou rien du tout ? Y répondre demande de savoir calculer trois quantités avant de dimensionner quoi que ce soit : le taux d'occupation, le nombre de demandes présentes et le temps de réponse.
Ce qu'une file d'attente modélise
Trois ingrédients suffisent à décrire la plupart des situations d'attente, et ils se posent avant tout calcul.
Le processus d'arrivée dit à quel rythme les demandes se présentent. On note le nombre moyen d'arrivées par unité de temps.
Le processus de service dit à quel rythme une demande est traitée. On note le nombre moyen de demandes qu'un serveur peut traiter par unité de temps. Ce n'est pas une moyenne de mesures, comme celui de la loi normale du chapitre précédent, mais un rythme : la durée moyenne d'un service vaut .
La discipline dit dans quel ordre les demandes passent : premier arrivé premier servi, le plus court d'abord, par priorité.
Le cas de référence porte un nom codé, M/M/1 : arrivées sans mémoire, service sans mémoire, un seul serveur. « Sans mémoire » a le sens du chapitre précédent : le temps qui reste avant la prochaine arrivée ne dépend pas du temps déjà écoulé depuis la dernière. L'intervalle entre deux arrivées suit alors la loi exponentielle de paramètre , de moyenne , et le nombre d'arrivées pendant une durée suit la loi de Poisson de paramètre du chapitre sur le risque. Il en va de même du service : sa durée suit la loi exponentielle de paramètre , et ce qu'il reste à servir ne dépend pas de ce qui a déjà été fait.
C'est une bonne description d'un trafic de clients nombreux et indépendants les uns des autres. Des arrivées parfaitement régulières, une toutes les dix secondes, ne le sont pas, même si chaque intervalle ignore ce qui s'est passé avant. Pour le service, c'est une hypothèse forte, que la section sur la variabilité lève.
Le débit ne dit rien de l'attente. Deux systèmes de débit identique peuvent avoir des temps de réponse dans un rapport de dix, et c'est le rapport de la charge à la capacité, le taux d'occupation de la section suivante, qui les sépare.
Les données de terrain donnent presque toujours des durées, les formules attendent des rythmes : la conversion se fait avant tout calcul.
Le taux d'occupation
Le taux d'occupation est le rapport du rythme d'arrivée au rythme de service :
C'est la fraction du temps pendant laquelle le serveur travaille. Le système n'est stable que si .
C'est aussi le travail apporté par unité de temps : 12 appels par heure, de 4 minutes chacun, font 48 minutes de travail par heure, soit .
Trois services, trois taux
- 1.
Un serveur peut traiter au plus 20 requêtes par seconde et en reçoit 10. Quel est son taux d'occupation ?
- 2.
Un guichet peut servir au plus 12 clients par heure et en voit arriver 11. Quel est son taux d'occupation, arrondi au centième ?
- 3.
Un serveur reçoit 15 requêtes par seconde et ne peut en traiter que 12. Que vaut son taux d'occupation ?
La condition de stabilité mérite d'être lue lentement. Si , il arrive en moyenne plus de demandes que le serveur n'en traite : l'écart s'accumule, et la file grandit sans limite. Le cas est plus trompeur, car arrivées et capacité s'y équilibrent en moyenne. Mais un serveur qui chôme pendant un creux perd ce temps pour toujours, et les rafales qui suivent s'ajoutent à la file sans qu'aucune marge ne les résorbe : la file erre de plus en plus loin, et aucune valeur moyenne n'existe. Le chapitre sur le risque comptait les secondes où les arrivées dépassent la capacité ; la file, elle, reporte sur la seconde suivante tout ce qui n'a pas été servi. Dans les deux cas, ce n'est pas une file longue, c'est une file infinie.
Un serveur occupé à 100 % n'est pas un serveur bien utilisé. C'est un serveur dont la file diverge. Le viser revient à demander qu'il n'y ait jamais le moindre creux, et le moindre à-coup d'arrivée se paie alors par une attente qui ne se résorbe pas. Un relevé à 100 % sur une minute, comme ceux du chapitre précédent, ne dit pas encore que : il faut que la charge y reste en moyenne, et c'est la file qui le dit.
Toute la difficulté du dimensionnement tient dans cet écart : le taux d'occupation qu'on aimerait viser pour amortir la machine, et celui qu'on peut se permettre sans dégrader le service.
1.Que se passe-t-il quand le taux d'occupation atteint 1 ?
2.Un conseiller reçoit 12 appels par heure, et un appel dure en moyenne 4 minutes. Quel est son taux d'occupation ?
La loi de Little
Une seule relation lie le nombre de demandes présentes, le rythme d'arrivée et le temps de séjour, et elle ne suppose presque rien.
où est le nombre moyen de demandes présentes dans le système et le temps moyen qu'une demande y passe.
Elle se lit : le nombre moyen de présents vaut le nombre d'arrivées par unité de temps multiplié par la durée moyenne du séjour. Un guichet qui reçoit 30 clients par heure, chacun restant en moyenne 12 minutes, soit 0,2 heure, en abrite donc à la fois.
La raison tient dans un double comptage. Sur une longue durée d'observation , le tracé du nombre de présents délimite une aire, en demandes-secondes. Comptée instant par instant, cette aire vaut ; comptée demande par demande, elle vaut le nombre de demandes passées, , fois le séjour moyen de chacune. C'est la même aire, d'où .
Rien dans ce raisonnement ne regarde l'ordre de passage, la loi des arrivées ou le nombre de serveurs : la loi vaut dès que le système est stable et observé assez longtemps.
L'usage est toujours le même : mesurer les deux quantités faciles, et en déduire la troisième. Le rythme d'arrivée se compte, le nombre de demandes présentes se relève, et le temps de réponse, qui est le plus pénible à instrumenter, s'en déduit sans le mesurer.
1.La loi de Little suppose…
2.Pendant un pic, un tableau de bord relève 3 000 requêtes présentes pour 10 arrivées par seconde, et annonce un temps de réponse de 300 secondes. Que vaut cette annonce ?
La file d'un seul serveur
Pour le cas M/M/1, deux formules donnent tout le reste.
compte les demandes présentes, celle en cours de traitement comprise. mesure le temps total passé dans le système, attente et service compris.
Le service seul dure en moyenne : 100 millisecondes pour un serveur à 10 demandes par seconde. Ce qui reste, , est l'attente en file, le temps passé à attendre son tour : à et , millisecondes, dont 400 d'attente en file et 100 de service.
Ceux qui attendent leur tour, hors service, sont en moyenne : le serveur n'est occupé qu'une fraction du temps, il sert donc en moyenne demande, et non une. À , 3,2 demandes attendent pour 4 présentes, ce que la loi de Little confirme : .
Le dénominateur est ce qui compte. Dans les deux formules, il tend vers zéro quand la charge approche la capacité, et c'est de là que vient l'explosion.
La formule le dit, la figure ci-dessous le fait voir. Les clients arrivent au hasard, le serveur les traite au hasard, et rien n'est recopié depuis la théorie : le nombre de présents et le séjour affichés sont mesurés sur ce qui se passe à l'écran, et la valeur théorique s'affiche à côté pour que les deux se rejoignent.
Mesure encore trop courte pour être comparée : 0 clients servis. Laisser tourner, ou accélérer, jusqu'à la centaine. Un écart entre la mesure et la théorie avant ce point ne dit rien de la théorie, il dit seulement qu'on n'a pas assez regardé.
Vérifier alors la loi de Little : diviser « présents, mesuré » par « séjour, mesuré » exprimé en secondes. Le quotient tombe près de 8, le rythme d'arrivée, alors qu'aucun des deux nombres n'a été calculé par une formule.
Monter ensuite λ à 9, puis à 9,5, sans toucher à μ. La file met de plus en plus de temps à se vider, et les creux où le serveur chôme se raréfient : le modèle dit qu'il chôme une fraction du temps, 20 % à λ = 8, 10 % à λ = 9, 5 % à λ = 9,5. Repérer à partir de quel réglage le tracé ne touche presque plus zéro sur toute sa largeur.
Pousser enfin λ au-delà de μ. Le trait orange disparaît, parce qu'il n'y a plus de moyenne à annoncer, et le tracé monte sans jamais redescendre. Accélérer alors ×20 pour voir à quelle vitesse la situation devient irrattrapable, puis ramener λ à 8 et remettre à zéro avant de passer à la suite.
| taux d'occupation ρ | f |
|---|---|
| 0 | 0 |
| 0,0475 | 0,0499 |
| 0,095 | 0,105 |
| 0,1425 | 0,1662 |
| 0,19 | 0,2346 |
| 0,2375 | 0,3115 |
| 0,285 | 0,3986 |
| 0,3325 | 0,4981 |
| 0,38 | 0,6129 |
| 0,4275 | 0,7467 |
| 0,475 | 0,9048 |
| 0,5 | 1 |
| 0,5225 | 1,0942 |
| 0,57 | 1,3256 |
| 0,6175 | 1,6144 |
| 0,665 | 1,9851 |
| 0,7125 | 2,4783 |
| 0,76 | 3,1667 |
| 0,8 | 4 |
| 0,8075 | 4,1948 |
| 0,855 | 5,8966 |
| 0,9025 | 9,2564 |
| 0,95 | 19 |
La figure dit ce qu'aucune formule ne fait sentir. Entre 0 et 0,7, le nombre de présents reste sous deux et demi, 2,3 à 0,7, et le système paraît confortable. Entre 0,9 et 0,95, il passe de 9 à 19 : doubler, pour cinq points de charge de plus.
Voici ce que coûtent ces derniers points de charge. C'est le même service de paiement, la même capacité de 10 demandes par seconde, et 9,5 reçues au lieu de 8, quinze points de charge de plus : un jour de soldes, une campagne, un pic de fin de mois.
Mesure encore trop courte pour être comparée : 0 clients servis. Laisser tourner, ou accélérer, jusqu'à la centaine. Un écart entre la mesure et la théorie avant ce point ne dit rien de la théorie, il dit seulement qu'on n'a pas assez regardé.
Laisser ensuite tourner les deux bien au-delà du moment où l'avertissement de mesure courte disparaît, et surveiller la ligne « présents, mesuré ». Sur la première figure elle se cale sur 4 et n'en bouge plus guère. Ici elle erre : 3, puis 17, puis 14, pour une théorie qui annonce 19. Plus un système est chargé, plus il faut l'observer longtemps avant que la moyenne veuille dire quelque chose, et une mesure de dix minutes sur un serveur à 0,95 ne dit à peu près rien de son comportement.
Redescendre enfin λ à 8 et regarder la file se résorber. Le retour à la normale n'est pas immédiat : ce que la pointe a accumulé se paie après elle, et c'est pourquoi une alerte qui se déclenche pendant le pic arrive déjà trop tard.
Un service traite au plus 10 requêtes par seconde. Voici ce que deviennent les présents et le temps de réponse selon le trafic reçu.
| Trafic | Occupation | Présents | Temps de réponse |
|---|---|---|---|
| 5 | 0,50 | 1,0 | 200 ms |
| 8 | 0,80 | 4,0 | 500 ms |
| 9 | 0,90 | 9,0 | 1 000 ms |
| 9,5 | 0,95 | 19,0 | 2 000 ms |
| 9,9 | 0,99 | 99,0 | 10 000 ms |
Passer de 5 à 9 requêtes par seconde multiplie le trafic par 1,8 et le temps de réponse par 5. Passer de 9 à 9,9 le multiplie encore par 1,1 et le temps de réponse par 10.
Plusieurs serveurs pour une seule file
Devant un service trop lent, deux leviers existent, et l'intuition se trompe sur lequel rend le plus.
Accélérer le serveur augmente . Ajouter des serveurs augmente leur nombre , chacun gardant son propre rythme. À capacité totale identique, constant, les deux organisations n'ont pas du tout le même comportement.
C'est la fraction du temps pendant laquelle un serveur donné travaille. La condition de stabilité reste , et elle porte maintenant sur la capacité totale.
La probabilité qu'un client arrivant trouve tous les serveurs occupés, et doive donc attendre, porte un nom et une formule : c'est la formule d'Erlang C. Elle ne s'apprend pas par cœur, elle se calcule, et la figure ci-dessous l'affiche pour chaque réglage, sur la ligne « risque d'attendre ». Deux cas suffisent à la main. Avec deux serveurs, elle tient en une ligne, ; et quel que soit , l'attente en file moyenne s'en déduit en divisant ce risque par la marge de capacité, . Ce qu'elle produit vaut la peine d'être regardé.
| Organisation | Risque d'attendre | Attente en file | Temps total | |
|---|---|---|---|---|
| 1 serveur à 10/s, | 0,80 | 80 % | 400 ms | 500 ms |
| 2 serveurs à 10/s, | 0,80 | 71 % | 178 ms | 278 ms |
| 3 serveurs à 10/s, | 0,80 | 65 % | 108 ms | 208 ms |
Ce tableau ne compare pas encore les deux leviers : il fait grandir le trafic et le nombre de serveurs ensemble, pour isoler l'effet du nombre de serveurs. Les trois lignes ont le même taux d'occupation et des attentes en file dans un rapport de près de quatre, 400 contre 108 millisecondes. C'est l'effet de mutualisation : plus il y a de serveurs derrière une même file, moins il est probable qu'ils soient tous occupés au même instant, et moins il faut attendre.
Il se lit aussi entre les deux premières lignes. Deux serveurs ayant chacun sa file et 8 requêtes par seconde, ce sont deux copies de la première ligne : 400 millisecondes d'attente en file. Les mêmes derrière une file commune, c'est la deuxième ligne : 178 millisecondes.
Mesure encore trop courte pour être comparée : 0 clients servis. Laisser tourner, ou accélérer, jusqu'à la centaine. Un écart entre la mesure et la théorie avant ce point ne dit rien de la théorie, il dit seulement qu'on n'a pas assez regardé.
Chercher ensuite le contre-exemple. Revenir à λ = 16 et c = 2 : 178 millisecondes d'attente en file, et 278 de séjour, c'est-à-dire de temps total. Monter alors μ à 20, puis ramener c à 1 : la capacité totale vaut toujours 20, l'attente en file remonte à 200 millisecondes, et le séjour descend à 250. Les deux organisations ne gagnent pas la même chose.
Mais le temps total ajoute la durée du service, qui vaut 100 millisecondes sur un serveur lent contre 50 sur le rapide. Le total devient 278 contre 250 : le serveur unique gagne.
La conclusion dépend donc de la question posée, et non du niveau de charge : à capacité totale égale, le serveur rapide l'emporte toujours sur le temps total, parce qu'un client y est servi deux fois plus vite, et la mutualisation l'emporte toujours sur l'attente avant la prise en charge.
Et dans la vie réelle, un troisième critère tranche souvent : la panne. Deux serveurs survivent à la panne de l'un des deux à une condition, que le survivant tienne seul le trafic. Ici, il recevrait 16 requêtes par seconde pour une capacité de 10, et sa file divergerait jusqu'à la réparation : il faudrait trois serveurs à 10 pour que l'un puisse tomber.
Une file commune, pas une file par serveur. Avec des files séparées, un serveur peut chômer pendant que quelqu'un attend ailleurs, et ce temps perdu ne se rattrape jamais.
Le gain, compté en temps, grandit avec la charge : avec deux serveurs à 10 requêtes par seconde, la file commune fait gagner 67 millisecondes d'attente en file à mi-charge, 222 à 0,8 et près d'une seconde à 0,95. En proportion, il va dans l'autre sens : elle divise l'attente en file par 3 à mi-charge, par 2,25 à 0,8, et par un peu plus de 2 près de la saturation.
La variabilité pèse autant que la charge
Le modèle suppose des services de durée très variable : une loi sans mémoire a un écart-type égal à sa moyenne, comme l'a établi le chapitre sur le risque. Beaucoup de services réels ne le sont pas : une requête de base de données sur index prend presque toujours le même temps.
Une approximation due à Kingman donne l'attente en file pour des lois quelconques :
où et sont les coefficients de variation des intervalles entre arrivées et des durées de service, c'est-à-dire leur écart-type divisé par leur moyenne (rien à voir avec le nombre de serveurs : la formule vaut pour un serveur). Un processus sans mémoire a un coefficient de 1 ; un service parfaitement régulier a un coefficient de 0.
La formule se lit comme un produit de trois facteurs : la charge, , la variabilité, moyenne des carrés des deux coefficients, et la durée d'un service, . Avec deux processus sans mémoire, le facteur du milieu vaut 1 et l'on retrouve exactement l'attente en file du modèle M/M/1. Avec des arrivées sans mémoire, elle est même exacte quel que soit le service.
| Situation | Attente en file à | ||
|---|---|---|---|
| Arrivées et service sans mémoire | 1 | 1 | 400 ms |
| Service parfaitement régulier | 1 | 0 | 200 ms |
| Arrivées régulières, service sans mémoire | 0 | 1 | 200 ms environ |
| Service très variable | 1 | 2 | 1 000 ms |
La troisième ligne est la seule approchée : le calcul exact donne 169 millisecondes, et l'ordre de grandeur reste le bon.
Régulariser vaut une augmentation de capacité. Rendre le service parfaitement régulier divise l'attente par deux, sans ajouter la moindre machine. À l'inverse, un service dont l'écart-type vaut deux fois la durée moyenne multiplie l'attente par 2,5.
C'est le levier le moins cher et le plus souvent oublié. Découper un traitement long en morceaux réguliers, réserver une file aux requêtes légères, comme les caisses express d'un supermarché, plafonner la taille d'un lot : toutes ces mesures réduisent . Séparer défait pourtant une partie de la mutualisation : le gain sur la variabilité doit la compenser, ce qui est le cas quand les durées diffèrent d'un ordre de grandeur, et pas quand elles se ressemblent.
À , diviser l'attente par deux en accélérant le serveur demanderait de porter de 10 à 11,5 environ : régulariser vaut 15 % de capacité en plus.
| taux d'occupation ρ | f | g | h |
|---|---|---|---|
| 0 | 0 | 0 | 0 |
| 0,0475 | 2,4934 | 4,9869 | 12,4672 |
| 0,095 | 5,2486 | 10,4972 | 26,2431 |
| 0,1425 | 8,309 | 16,6181 | 41,5452 |
| 0,19 | 11,7284 | 23,4568 | 58,642 |
| 0,2375 | 15,5738 | 31,1475 | 77,8689 |
| 0,285 | 19,9301 | 39,8601 | 99,6503 |
| 0,3325 | 24,9064 | 49,8127 | 124,5318 |
| 0,38 | 30,6452 | 61,2903 | 153,2258 |
| 0,4275 | 37,3362 | 74,6725 | 186,6812 |
| 0,475 | 45,2381 | 90,4762 | 226,1905 |
| 0,5225 | 54,712 | 109,4241 | 273,5602 |
| 0,57 | 66,2791 | 132,5581 | 331,3953 |
| 0,6175 | 80,719 | 161,4379 | 403,5948 |
| 0,665 | 99,2537 | 198,5075 | 496,2687 |
| 0,7125 | 123,913 | 247,8261 | 619,5652 |
| 0,76 | 158,3333 | 316,6667 | 791,6667 |
| 0,8075 | 209,7403 | 419,4805 | 1 048,7013 |
| 0,855 | 294,8276 | 589,6552 | 1 474,1379 |
| 0,9025 | 462,8205 | 925,641 | 2 314,1026 |
| 0,95 | 950 | 1 900 | 4 750 |
ρ = 0,800 : service régulier 200,000 ; sans mémoire 400,000 ; très variable 1 000,000
très variable fait le plus attendre
La formule se vérifie en quelques lignes de code. Chaque client hérite de ce qui restait à faire au précédent, moins l'intervalle qui les sépare, et son attente ne descend jamais sous zéro : c'est toute la file d'attente, client par client.
Les deux attentes, 389 et 207 millisecondes, tombent près des 400 et 200 du tableau ; l'écart
restant tient au hasard des 200 000 clients. Une seule ligne distingue les deux cas, celle qui tire
la durée du service. Le max(0.0, …) est celui du débogage de la file qui passe sous zéro, parmi
les exercices du chapitre : une file ne met jamais de temps libre en réserve.
1.Deux serveurs identiques traitent le même trafic total. Quelle organisation donne la plus courte attente ?
2.Un guichet de préfecture à trois agents ne peut ni recevoir moins de monde ni embaucher. Quel changement réduit l'attente moyenne ?
La moyenne ne suffit pas : les centiles
Un temps de réponse moyen de 500 millisecondes ne dit pas ce que subit l'utilisateur le plus malchanceux, et c'est pourtant lui qui écrit à l'assistance.
Dans le modèle à un serveur, servi dans l'ordre d'arrivée, le temps qu'un client passe dans le système, service compris, suit la loi exponentielle du chapitre précédent. Son paramètre n'est pas le rythme d'arrivée , c'est l'écart : la moyenne vaut bien . La proportion de clients qui restent plus d'un temps dans le système vaut donc
Le chapitre précédent a établi les quantiles de cette loi : divisé par son paramètre. Le centile d'ordre , la durée que seule une fraction des clients dépasse, vaut donc ici
Le centile se calcule en une ligne, sans simulation : la médiane vaut fois la moyenne, le centile 99 vaut fois la moyenne.
Pour et , donc :
| Quantité | Valeur |
|---|---|
| Moyenne | 500 ms |
| Médiane | 347 ms |
| 90e centile | 1 151 ms |
| 95e centile | 1 498 ms |
| 99e centile | 2 303 ms |
La médiane est inférieure à la moyenne, et le centile 99 vaut 4,6 fois la moyenne.
Le chapitre précédent trouvait des latences log-normales sur des serveurs réels, et ce modèle annonce une exponentielle. Les deux ne se contredisent pas : toutes deux sont étalées à droite, avec une moyenne au-dessus de la médiane. L'exponentielle est ce que donne un serveur idéal sans mémoire ; la log-normale, ce que donnent des requêtes qui traversent plusieurs couches. Dans les deux cas, la moyenne ne dit pas ce que vit le client malchanceux.
Ce que cela impose à un engagement de service. Un engagement écrit sur la moyenne est presque toujours une erreur : dans ce modèle, il peut être tenu pendant qu'un client sur cent reste dans le système plus de 4,6 fois la moyenne annoncée.
Les engagements sérieux portent donc sur un centile, et le rapport de 4,6 ci-dessus donne l'ordre de grandeur du coût : promettre un centile 99 à 500 millisecondes revient à viser une moyenne autour de 110, donc, à 8 demandes par seconde, une capacité de 17 au lieu de 10, 72 % de plus.
La discipline change qui attend, pas combien
La section précédente a montré qu'une moyenne cache une distribution. L'ordre de passage agit exactement là.
Premier arrivé premier servi, dernier arrivé premier servi, au hasard : ces trois disciplines donnent exactement la même longueur moyenne de file et le même temps d'attente moyen.
La raison tient en deux temps. D'abord, tant que la discipline ne laisse jamais un serveur inoccupé devant une file non vide, le serveur travaille exactement aux mêmes instants : l'ordre décide seulement qui il sert, pas combien de travail il abat. Si, de plus, elle ne regarde pas la durée des services, le nombre de présents a la même évolution, donc la même moyenne . Ensuite, la loi de Little, , donne le même temps moyen.
Ce qui change, et radicalement, c'est la distribution. En premier arrivé premier servi, les attentes sont les moins dispersées, ce qui ne veut pas dire égales : à , un client sur cinq passe sans attendre et un sur dix attend plus d'une seconde. En dernier arrivé premier servi, la plupart passent presque tout de suite, six sur dix en moins de 100 millisecondes, et quelques-uns, arrivés juste avant une rafale, attendent des durées sans commune mesure : le centile 99 de l'attente y est à peu près trois fois celui du premier arrivé premier servi. Même moyenne, expériences opposées.
Le prix est que les tâches longues peuvent attendre très longtemps, tant qu'il arrive des tâches courtes. Un ordonnanceur qui l'emploie doit donc lui ajouter un vieillissement, comme ceux du chapitre sur les processus et l'ordonnancement : au bout d'un certain temps d'attente, la priorité d'une tâche monte, quelle que soit sa durée.
1.Un tableau de bord affiche un temps de réponse moyen de 500 millisecondes, sans rien dire de la loi des temps. Que peut-on en conclure sur l'expérience des utilisateurs ?
2.Un service passe du premier arrivé premier servi au dernier arrivé premier servi, sans rien changer d'autre. Que devient son temps de réponse ?
Les files d'attente humaines
Tout ce qui précède vaut pour des requêtes, des pièces ou des clients : le modèle ne fait pas la différence. Une file humaine en ajoute pourtant une, et elle est décisive. Une requête ne se demande pas si la file d'à côté avance plus vite, ne renonce pas, et ne raconte pas son attente à ses amis. Une personne, si : et une attente mesurée ne compte que ceux qui sont restés.
Le passage du modèle au terrain se fait par un objet très concret : la barrière. Un exploitant de parc, de gare ou de supermarché ne choisit pas une discipline en la décrétant, il la rend physique en posant des barrières, et c'est ce geste qui décide de qui peut doubler qui.
Une file, ou une par guichet
La section sur la mutualisation a montré le résultat par le calcul, entre les deux premières lignes de son tableau : à capacité totale égale, les clients de plusieurs serveurs derrière une seule file attendent moins que ceux du même nombre de serveurs ayant chacun la sienne. La vue de haut le fait subir, sur la même foule, aux mêmes instants.
40 arrivées par heure, 3 guichets à 15 par heure.Les barrières sont les traits gris ; chaque rond est une personne.
Suivre d'abord le compteur de personnes doublées : il reste à zéro en file unique ; en files parallèles, il monte à cinq dès la huitième minute, sept à la fermeture des portes, onze à la fin, alors que chacun a rejoint la file la plus courte qu'il voyait. Près d'une personne sur deux a vu passer devant elle quelqu'un arrivé après.
Lire enfin les attentes une fois tout le monde servi : onze minutes en moyenne contre quatorze, vingt au pire contre vingt-neuf. En cours de route, de la huitième à la vingt-cinquième minute, la moyenne affichée donne pourtant l'avantage aux files parallèles : elle ne compte que les personnes déjà servies, et celles qui piétinent encore dans les barrières, quinze contre douze à la vingt-troisième minute, n'y figurent pas. Une moyenne lue avant que la file se vide est la même erreur que la mesure courte de la première figure du chapitre.
Les files parallèles perdent sur les deux tableaux, et pour deux raisons différentes : un guichet peut chômer pendant qu'une autre file attend, et une file courte peut cacher un service long.
Ce que la file unique achète, et ce qu'elle coûte. Elle supprime le dépassement : l'ordre d'arrivée est l'ordre de service, et personne ne peut plus se tromper de file. Elle mutualise : aucun guichet ne chôme devant une file non vide.
Elle coûte un cheminement plus long, et elle rend la file visible d'un seul tenant : une file unique de quarante personnes paraît plus longue que trois files de treize, alors qu'elle s'écoule plus vite.
Le serpentin ne change pas la file, il change ce qu'on en voit
Plier une file en couloirs parallèles ne modifie ni l'ordre de passage, ni l'attente : c'est la même file, repliée. Ce que le pliage change est ailleurs.
40 arrivées par heure, 3 guichets à 15 par heure.Les barrières sont les traits gris ; chaque rond est une personne.
Ce qu'il change se lit sur le dessin : la même file, repliée, tient dans le quart de la longueur, pour la même surface occupée par les personnes. Une personne qui arrive ne voit plus une file qui s'étire jusqu'au fond du hall, elle voit des couloirs courts, et elle avance à chaque départ.
Ce que l'attente fait ressentir
Le temps d'attente ressenti n'est pas le temps d'attente mesuré, et l'écart n'a rien d'aléatoire. David Maister l'a formulé en 1985 en huit propositions, avancées comme des hypothèses et en partie confirmées depuis ; les plus utiles ici tiennent en quatre lignes.
Quatre effets, et ce qu'ils impliquent pour l'exploitant.
Une attente inoccupée paraît plus longue qu'une attente occupée. D'où les files thématisées, les écrans, les pré-spectacles : ils ne raccourcissent rien, ils remplissent.
Une attente de durée inconnue paraît plus longue qu'une attente annoncée. D'où les temps affichés à l'entrée des files, souvent majorés : les relevés indépendants des grands parcs trouvent des attentes réelles nettement plus courtes que l'affichage, et arriver plus tôt que promis se ressent comme un gain.
Une attente inexpliquée paraît plus longue qu'une attente justifiée. D'où l'annonce du motif d'un retard, qui ne change rien au retard.
Une attente injuste paraît plus longue qu'une attente équitable. Richard Larson en a fait en 1987 l'argument central de la conception des files, et c'est celui que les barrières décident.
Le quatrième explique pourquoi la file unique s'est imposée dans les banques, les aéroports et les grands parcs, et pas seulement parce qu'elle raccourcit l'attente moyenne : elle supprime le dépassement, donc le sentiment d'injustice, donc l'attente ressentie. Elle supprime aussi l'anxiété du choix, cette question qui accompagne toute file parallèle : « ai-je pris la bonne ? »
L'effet sur le ressenti n'est donc pas symétrique. Le titulaire du coupe-file gagne un temps qu'il a payé et qu'il attendait ; celui qui reste subit un dépassement visible et répété, c'est-à-dire précisément la forme d'attente qui pèse le plus. C'est pourquoi ces dispositifs gagnent à se concevoir avec une entrée séparée, hors de la vue de la file principale : l'enjeu n'est pas le temps, il est la visibilité de l'injustice.
Quand les files se suivent
Un système réel enchaîne rarement une seule file. Une requête traverse un répartiteur, puis un serveur applicatif, puis une base de données, et chacun est une file.
Deux résultats suffisent à raisonner sur l'ensemble.
La capacité de la chaîne, le plus grand trafic qu'elle peut absorber, est celle de son étage le plus lent, et d'aucun autre. Accélérer un étage qui n'est pas le goulet ne la relève pas d'une seule requête par seconde : au-delà de cette capacité, l'attente s'accumule devant le goulet, quoi qu'on fasse ailleurs.
La loi de Little s'applique à l'ensemble comme à chaque étage. Le nombre de requêtes présentes dans tout le système, divisé par le débit, donne le temps de traversée complet, sans qu'il soit besoin de décomposer.
Un corollaire utile : quand le goulet est accéléré, il change de place. Le deuxième étage le plus chargé devient le nouveau goulet, et la capacité gagnée s'arrête à la sienne. Une chaîne équilibrée ne gagne plus de capacité qu'en accélérant tous ses étages à la fois.
Trouver le goulet
- 1.
Une requête traverse un répartiteur qui en traite 2 000 par seconde, une application de 4 serveurs à 250 par seconde chacun, puis une base de données qui en traite 1 200. Le trafic vaut 900 requêtes par seconde. Quel est le taux d'occupation de l'application ?
- 2.
Quelle est la capacité de toute la chaîne, en requêtes par seconde ?
- 3.
L'application passe à 8 serveurs. Quelle est la nouvelle capacité de la chaîne ?
- 4.
À 900 requêtes par seconde, on compte en moyenne 180 requêtes présentes dans toute la chaîne. Combien de millisecondes dure une traversée ?
Une chaîne sans place pour attendre : monter dans un avion
L'allée d'un avion est une chaîne de files d'un genre particulier : chaque rangée est un étage, et il n'y a aucune place pour attendre entre deux étages. Un passager qui range son bagage ne ralentit pas seulement son étage, il bloque l'allée, donc tous ceux qui sont derrière lui ; un passager déjà assis côté couloir doit se lever pour laisser passer celui du hublot. Dans la simulation ci-dessous, ces deux blocages font toute la durée.
La méthode par blocs de l'arrière vers l'avant, longtemps la plus courante, est l'une des plus lentes, ce qu'une expérience en vraie grandeur a confirmé en 2011 : elle rassemble au même endroit des gens qui rangent tous leur bagage en même temps, c'est le maximum de blocage d'allée. La simulation fait monter les mêmes passagers, avec les mêmes bagages, dans deux ordres d'appel.
Vue de haut : l'allée au milieu, trois sièges de chaque côté.Un rond plein avance, un rond creux attend derrière quelqu'un.
Suivre ensuite les compteurs, qui montent au fil de l'embarquement, et les lire à la fin : 5 882 blocages d'allée contre 223, et 70 voisins levés contre aucun. Un blocage d'allée compte un pas de simulation perdu par une personne immobilisée derrière une autre, d'où des milliers pour cent vingt passagers. C'est surtout là que se joue le facteur trois sur la durée totale, 692 pas contre 238.
Les cinq méthodes, sur la même cabine et les mêmes bagages :
| Ordre d'appel | Durée (pas de simulation) | Blocages d'allée (pas perdus) | Voisins levés |
|---|---|---|---|
| Par blocs, de l'avant vers l'arrière | 782 | 5 594 | 70 |
| Par blocs, de l'arrière vers l'avant | 692 | 5 882 | 70 |
| Au hasard | 457 | 2 203 | 62 |
| Hublot, milieu, couloir | 416 | 1 754 | 0 |
| Méthode de Steffen | 238 | 223 | 0 |
Le hasard bat l'organisation, et ce n'est pas une boutade. Embarquer au hasard est plus rapide que par blocs de l'arrière vers l'avant, parce que le hasard répartit naturellement les passagers le long de l'allée, là où les blocs les concentrent devant un seul étage.
Appeler les hublots avant les couloirs supprime entièrement la seconde cause, les voisins levés. La méthode de Steffen ajoute l'espacement d'une rangée sur deux, ce qui réduit la première à presque rien, 223 blocages d'allée contre 1 754 : elle est la plus rapide des cinq, et de loin.
Les compagnies à bas coût qui ont le plus réduit leur temps d'escale ont longtemps pris l'autre chemin : le placement libre, qui s'apparente à l'embarquement au hasard, avec des bagages en cabine limités. Elles n'optimisaient pas l'ordre, elles supprimaient la contrainte qui le rendait nécessaire. La plupart l'ont abandonné depuis pour vendre le choix du siège, easyJet en 2012, Ryanair en 2014, Southwest en 2026 : un ordre d'embarquement se choisit aussi sur ce qu'il rapporte.
Le travail en cours : la loi de Little appliquée à une équipe
La loi de Little ne parle ni de serveurs ni de requêtes : elle parle de choses qui entrent, restent un moment, et sortent. Son domaine est donc bien plus large que les files d'attente.
Une équipe qui traite des demandes en est une. Si vingt demandes sont ouvertes en permanence et que l'équipe en clôt cinq par semaine, le délai moyen de traitement vaut semaines, et aucune bonne volonté ne le raccourcira tant que ces deux nombres ne changent pas.
Le seul levier qui reste quand le débit est fixé. Le délai vaut le nombre de travaux en cours divisé par le débit. Si le débit ne peut pas augmenter, la seule façon de raccourcir le délai entre le début et la fin d'un travail est de réduire le nombre de travaux ouverts simultanément.
C'est le fondement des méthodes qui plafonnent le travail en cours. Elles ne rendent personne plus rapide : elles retiennent les demandes à l'entrée au lieu de les commencer toutes, et la loi de Little fait le reste. Le demandeur, lui, n'attend moins au total que si le débit monte, ce que permet souvent la fin des allers-retours entre tâches.
Le paradoxe de l'inspection : l'attente à l'arrêt de bus
Les bus passent toutes les dix minutes en moyenne, mais complètement au hasard, comme les arrivées sans mémoire de ce chapitre. Une personne qui arrive à l'arrêt sans consulter l'horaire attend en moyenne dix minutes, et non cinq.
L'absence de mémoire du chapitre précédent le dit en une ligne : le temps qui reste avant le prochain bus ne dépend pas du temps écoulé depuis le dernier, il a donc la loi d'un intervalle entier, de moyenne dix minutes.
Ce n'est pas une erreur de calcul, c'est un effet de sélection. Arriver à un instant quelconque rend plus probable de tomber dans un grand intervalle que dans un petit, précisément parce qu'il est plus grand. Pour des passages sans mémoire, l'intervalle qui contient l'instant d'arrivée dure en moyenne vingt minutes, deux fois l'intervalle moyen, et l'on en attend en moyenne la moitié : dix minutes. Avec des bus simplement irréguliers, l'effet est plus faible : des intervalles répartis uniformément entre 5 et 15 minutes donnent une attente moyenne d'environ 5,4 minutes. Avec des bus qui arrivent en grappes, il est plus fort.
Où ce biais se rencontre ailleurs. Il frappe toutes les mesures prises « à un instant quelconque ».
Un sondage sur la taille des classes mené auprès des élèves donne une taille moyenne supérieure à celle que donne le même sondage mené auprès des établissements, parce qu'une grande classe contient plus d'élèves à interroger. Un relevé des requêtes en cours, pris à des instants quelconques, surreprésente les requêtes longues, pour la même raison : une requête longue a plus de chances d'être en cours au moment du relevé. Dans les deux cas, le nombre obtenu est juste et ne répond pas à la question posée.
Pour connaître la durée moyenne des requêtes, la loi de Little évite le piège : le nombre de requêtes en cours, lui, est juste à tout instant, et il suffit de le diviser par le débit.
1.Un parc replie la file d'une attraction en serpentin, sans toucher aux barrières de l'entrée ni au rythme de l'attraction. Que change ce pliage ?
2.Une chaîne enchaîne un répartiteur à 2 000 requêtes par seconde, une application à 800 et une base de données à 1 200. Pour absorber 1 000 requêtes par seconde, que faut-il accélérer ?
3.Pour estimer la durée moyenne des requêtes, un script relève chaque minute les requêtes en cours, puis fait la moyenne de leur durée une fois qu'elles sont terminées. Que vaut cette estimation ?
Ce que le modèle ne dit pas
Les arrivées sont rarement sans mémoire. Un trafic réel arrive souvent en rafales, ce qui allonge les files par rapport au modèle. Le chapitre sur le risque en donne le signe sur un comptage, une variance nettement supérieure à la moyenne ; dans la formule de Kingman, les rafales font monter au-dessus de 1. Sur un tel trafic, les chiffres calculés ici sont des minorants de l'attente réelle.
Le service n'est pas toujours indépendant de la charge. Un serveur saturé devient souvent plus lent qu'à vide, par effet de cache ou de contention. Le modèle suppose constant, et la réalité le dégrade au pire moment.
Les formules décrivent un régime établi. Elles donnent des moyennes sur une longue durée, à trafic constant. Pendant un pic où le trafic dépasse la capacité, il n'y a pas de file moyenne, seulement un réservoir qui se remplit : à 10,45 demandes par seconde pour une capacité de 10, dix minutes de pic accumulent environ demandes, que la marge de 0,5 par seconde d'un trafic retombé à 9,5 met ensuite neuf minutes à résorber. La loi de Little ne s'applique pas non plus pendant le pic : le quotient des présents par le débit décrit un instant, pas un séjour.
Les trois dernières limites vont dans le même sens : rafales, ralentissement sous charge et pics rendent la situation réelle pire que ce que le modèle annonce. Seuls des arrivées ou un service plus réguliers que le modèle jouent en sa faveur, et la formule de Kingman permet de le chiffrer. C'est ce qui rend le modèle utilisable malgré ses hypothèses : un dimensionnement qui ne tient pas dans le modèle a peu de chances de tenir en production, à moins que le service y soit nettement plus régulier.
Le service de paiement, pour finir
Un jour de soldes, le service reçoit 9,5 demandes par seconde pour une capacité de 10 : 2 secondes de temps de réponse en moyenne, et un centile 99 vers 9 secondes. Régulariser le service ne suffit pas : l'attente en file passerait de 1,9 à 0,95 seconde.
Une machine deux fois plus rapide ramène le temps moyen à 95 millisecondes, et le centile 99 à 440. Deux machines à 10 derrière une file commune donnent 129 millisecondes en moyenne, dont 29 d'attente avant la prise en charge ; et si l'une tombe, l'autre retrouve exactement la situation d'aujourd'hui, , lente mais stable.
Le calcul ne tranche pas seul : la machine rapide gagne sur le temps moyen, les deux machines sur l'attente avant la prise en charge et sur la panne, parce que chacune reste sous 50 % d'occupation. Écrite en français, la conclusion tient en deux phrases. Avec une seule machine, le service tient 8 demandes par seconde sous une demi-seconde en moyenne, et 95 % de ses demandes sous 1,5 seconde ; au-delà, il cesse de tenir. Pour un jour de soldes à 9,5, une deuxième machine derrière une file commune ramène le temps moyen sous 130 millisecondes et survit à une panne ; une machine deux fois plus rapide fait un peu mieux sur la moyenne, mais tombe avec elle.
La méthode
- Écrire les deux rythmes dans la même unité, arrivées et service. Une durée de service se convertit en rythme par son inverse : 4 minutes par appel font 15 appels par heure. C'est là que se logent les erreurs d'un facteur soixante.
- Calculer le taux d'occupation en premier, et vérifier qu'il est strictement inférieur à 1. S'il ne l'est pas, aucun autre calcul n'a de sens.
- Vérifier que les moyennes ont un sens : un trafic à peu près constant, observé assez longtemps. Pendant un pic au-delà de la capacité, compter un réservoir qui se remplit, pas une file moyenne.
- Déduire les présents et le temps de réponse par les deux formules, ou par la loi de Little quand l'une des trois quantités est mesurée.
- Regarder la pente, pas seulement la valeur. Un taux d'occupation acceptable aujourd'hui ne dit rien de ce qu'il devient sous un pic de 10 %.
- Annoncer un centile, jamais une moyenne, quand il s'agit d'un engagement de service. Dans le modèle à un serveur, le centile 99 vaut 4,6 fois la moyenne ; sur un service réel, il se mesure.
- Regarder la variabilité autant que la charge. Régulariser le service divise l'attente par deux, ce qu'aucun serveur supplémentaire ne fait à ce prix.
- Sur une chaîne, chercher le goulet avant d'optimiser, en comparant les taux d'occupation de chaque étage. Accélérer ailleurs ne change rien à la capacité.
- Conclure en français, en disant quel trafic le dimensionnement accepte et à partir d'où il cesse de tenir.
Mettre en pratique
Un guichet de préfecture, cette fois : les données de terrain arrivent en durées, et la charge varie dans la journée.
Un guichet de préfecture
- 1.
Un guichet de préfecture reçoit 25 personnes par heure, et un agent traite un dossier en 2 minutes en moyenne. Combien de dossiers l'agent traite-t-il par heure ?
- 2.
Quel est le taux d'occupation du guichet ?
- 3.
Combien de personnes se trouvent en moyenne au guichet, celle qu'on sert comprise ?
- 4.
Combien de minutes une personne passe-t-elle en moyenne sur place ?
- 5.
Sur ce temps, combien de minutes passe-t-elle à attendre son tour ?
- 6.
Neuf personnes sur dix repartent avant combien de minutes ?
- 7.
La préfecture veut un temps moyen sur place d'au plus 6 minutes. Quel trafic maximal, en personnes par heure, le guichet peut-il accepter ?
Quand la charge varie
- 1.
Un lundi matin, 36 personnes par heure se présentent pendant deux heures, pour un guichet qui en traite 30. En suivant l'écart moyen, sans le hasard, combien de personnes de plus attendent à la fin du pic ?
- 2.
Le trafic retombe ensuite à 25 personnes par heure. Combien de minutes faut-il pour résorber ce surplus ?
- 3.
Un second agent ouvre, derrière la même file. Quel est le taux d'occupation de chacun, au trafic ordinaire de 25 par heure ?
- 4.
Une procédure standardisée rend la durée de traitement presque constante, de coefficient de variation 0,2. Par quel facteur l'attente en file d'un agent seul est-elle multipliée ?
La septième réponse est celle qui dérange : pour tenir 6 minutes, ce guichet ne peut accepter que 20 personnes par heure, les deux tiers de sa capacité. La capacité restante n'est pas du gaspillage, c'est elle qui paie le temps de réponse, et la retirer du dimensionnement revient à promettre une attente qu'on ne tiendra pas.
Le pic dit pourquoi : deux heures à 120 % laissent douze personnes de trop, et la marge ordinaire met près de deux heures et demie à les absorber. Ce que la pointe accumule se paie bien après elle.
Une hotline reçoit 27 appels par heure, et un appel dure en moyenne 2 minutes. Quel est le taux d'occupation d'un conseiller seul, et combien de temps un appelant passe-t-il en ligne ?
La donnée de service est une durée : 2 minutes par appel font appels par heure. Les deux rythmes sont alors dans la même unité, et .
Le temps passé en ligne vaut d'heure, soit 20 minutes, dont 18 d'attente pour 2 de conversation. Le contrôle par la loi de Little donne appelants, qui est bien .
Diviser par la durée, , donnerait un « taux » de 13,5 : c'est le signe qu'un rythme a été confondu avec son inverse.
Une file compte en moyenne 15 clients et le débit est de 3 clients par minute. Combien de temps un client passe-t-il dans le système ?
La loi de Little se lit dans le sens qui arrange : minutes.
C'est l'usage le plus fréquent de cette loi. Compter les clients présents et mesurer le débit est facile ; chronométrer chaque client individuellement ne l'est pas, et n'est pas nécessaire.
Pourquoi un serveur à 95 % d'occupation est-il presque toujours un mauvais réglage ?
Parce que le nombre de présents y vaut 19 et le temps de réponse 20 fois le temps de service. Surtout, la pente de la courbe est telle que deux points et demi d'occupation de plus doublent l'attente, là où il en fallait cinq à partir de 90 % : le système n'a plus aucune marge devant une variation de trafic, même modeste.
Un pic de 10 % du trafic sur un serveur à 50 % d'occupation le porte à 55 % : le nombre de présents passe de 1 à 1,2, c'est imperceptible. Le même pic sur un serveur à 95 % le porte à 104,5 %, au-delà de la stabilité : la file grossit pendant tout le pic, et ne se résorbe qu'une fois le pic passé, avec du retard. Un pic de dix minutes accumule environ 270 demandes, que la marge retrouvée de 0,5 par seconde met neuf minutes à écouler.
Un atelier reçoit 4 commandes de pièces par heure. Il peut acheter une imprimante 3D rapide, qui produit une pièce en 10 minutes, ou deux imprimantes lentes à 20 minutes, alimentées par la même file. Laquelle tient le mieux un délai de livraison ? Un délai avant le début de l'impression ?
Les deux offres ont la même capacité, 6 pièces par heure, donc le même taux d'occupation, .
L'imprimante rapide est un serveur unique de rythme 6 : heure, soit 30 minutes de délai de livraison, dont 20 d'attente avant l'impression.
Les deux lentes forment une file commune à deux serveurs de rythme 3. Le risque d'attendre vaut , et l'attente en file heure, soit 16 minutes. Le délai de livraison vaut minutes.
La rapide gagne sur la livraison, les deux lentes sur le démarrage : la réponse dépend de ce que l'engagement mesure. Et l'argument de la panne ne joue pas ici : une imprimante lente seule reçoit 4 commandes par heure pour une capacité de 3, et sa file diverge jusqu'à la réparation.
Le trafic double. De combien faut-il augmenter la capacité pour garder le même temps de réponse ?
Le temps de réponse vaut . Le garder constant impose de garder l'écart constant, donc d'augmenter de la même quantité que , et non de le doubler.
Si et passe de 5 à 10, il faut : la capacité augmente de 50 % quand le trafic a doublé. Avec la mutualisation, c'est l'un des deux endroits du chapitre où l'échelle joue en faveur de celui qui dimensionne : un système plus gros, pour la même attente, peut tourner plus chargé.
Un service de paiement à 10 demandes par seconde s'engage à servir 95 % des demandes en moins de 1,5 seconde. Quel trafic peut-il accepter ? Et si le même chiffre était écrit sur la moyenne ?
Le centile 95 vaut . L'engagement impose donc seconde, soit : le trafic ne doit pas dépasser 8 demandes par seconde, ce que le tableau des centiles confirmait (1 498 ms à ).
Écrit sur la moyenne, le même 1,5 seconde imposerait seulement , soit 9,3 demandes par seconde. Le centile 95 y vaudrait alors 4,5 secondes : un client sur vingt attendrait trois fois ce que l'engagement semble promettre.
Chapitre révisé en octobre 2026 · Une erreur dans ce chapitre ?
Dans la bibliothèque d'exercices
Taux d'occupation, loi de Little, et le mur de la saturation où cinq points de charge coûtent autant que les quarante premiers.
- Dimensionner un guichetNiveau 1
- Le mur de la saturationNiveau 2
- Tenir un engagement de latenceNiveau 2
- Débogage : la file qui passe sous zéroNiveau 2
- Le centile d'un engagementNiveau 2
- Régulariser le serviceNiveau 2
- Le goulet d'une chaîneNiveau 2
- Simuler une file, client par clientNiveau 3