Ceci est une traduction automatique ; le texte original est en anglais. Lire l'original

Pourquoi un système occupé à 99 % n'est pas simplement un peu pire qu'un système occupé à 75 %

A young woman cooks alone behind the counter of a small lantern-lit noodle bar while a long queue of people with umbrellas waits along a rain-soaked street outside, bicycles at the kerb and a cat asleep on a stool.

Faire passer l'utilisation de 75 % à 99 % représente un tiers de charge en plus. Cela donne une file d'attente trente-trois fois plus longue.

00.250.50.75105101520ρ=0.5 → 1ρ=0.75 → 3ρ=0.9 → 9ρ=0.95 → 19L = ρ / (1 − ρ)ρ=0.99 → 99OFF THIS CHART
La file d'attente n'est pas longue parce que la charge est élevée. Elle est longue parce que la marge résiduelle est faible.

Ouvrez le M/M/1 Queue Simulator avec ses réglages par défaut. Les tâches arrivent trois fois par heure, le serveur en traite quatre par heure, et l'affichage indique une utilisation de 0,750 avec 3,000 éléments dans le système dont 2,250 en attente.

Vingt-cinq pour cent de capacité disponible, et une file d'attente de trois éléments. Cela paraît déjà pire que ce que l'on imaginerait.

Ces quatre chiffres illustrent également le seul résultat de la théorie des files d'attente qu'il vaille la peine de retenir. Les arrivées sont de 3 par heure, le temps moyen d'attente dans le système est de 1,000 heure, et le nombre moyen d'éléments dans le système est de 3,000. C'est la loi de Little, L = λW, et sa caractéristique remarquable est qu'elle ne fait absolument aucune hypothèse sur les lois de probabilité. Modifiez le profil des arrivées, changez les temps de service, ajoutez des serveurs, elle reste vraie pour n'importe quelle file d'attente stable. Presque tout le reste ci-dessous dépend des hypothèses de modélisation ; pas ceci.

Une formule, et là où résident les difficultés

Pour cette file d'attente, le nombre moyen d'éléments dans le système est L = ρ / (1 − ρ), où ρ, prononcé "rho", est le taux d'utilisation. Les réglages par défaut de l'outil injectent 0,75 dans cette formule et obtiennent exactement le 3,000 affiché à l'écran.

Le numérateur est la charge. Le dénominateur est la marge résiduelle, et c'est le dénominateur qui décide de tout. Lorsque ρ tend vers 1, la marge résiduelle tend vers zéro, et diviser par un nombre qui tend vers zéro produit l'effet habituel.

  • ρ = 0,50 → L = 1
  • ρ = 0,75 → L = 3
  • ρ = 0,90 → L = 9
  • ρ = 0,95 → L = 19
  • ρ = 0,99 → L = 99

Lisez cette colonne comme le ferait un gestionnaire. Passer d'un système chargé à moitié à un système chargé à 99 % ne représente pas deux fois plus de travail, mais 1,98 fois plus, et cela multiplie la file d'attente par quatre-vingt-dix-neuf. Les quatre derniers points de pourcentage, de 95 à 99, coûtent davantage en file d'attente que toute la progression de 0 à 95.

Pourquoi la défaillance ne comporte aucune phase d'avertissement

Cette courbe explique un comportement que toute personne ayant exploité un service reconnaîtra. Le taux d'utilisation augmente lentement au fil des mois sans qu'il ne se passe rien. Les temps de réponse sont satisfaisants à 60 %, satisfaisants à 70 %, un peu moins bons à 85 %. Puis, une semaine donnée, le système devient inutilisable, alors que la charge cette semaine-là est à peine différente de celle de la semaine précédente.

Il n'y avait pas de falaise dans la charge. La falaise se trouve dans la formule, et une file d'attente constitue un bien mauvais système d'alerte précoce de son propre effondrement, car les dégâts sont concentrés dans les derniers pourcents.

Cela explique aussi pourquoi la solution consiste si souvent à "ajouter un serveur de plus" plutôt qu'à "rendre le serveur plus rapide". Ajouter de la capacité déplace ρ vers le bas de la courbe, et l'effet d'entraînement produit en passant de 0,95 à 0,90 est énorme précisément parce que c'est là que la courbe est raide.

Le préréglage sans réponse

L'outil propose trois préréglages, et le troisième est le plus intéressant. Le préréglage « Light load » fonctionne à ρ = 0,4. « Heavy load » fonctionne à 3,8 pour 4,0, soit ρ = 0,95 et L = 19, ce qui correspond au tableau ci-dessus.

Le troisième est intitulé « unstable », et fixe les arrivées à 4,2 pour un taux de service de 4,0. On a alors ρ = 1,05, et il n'y a pas de solution en régime permanent à calculer. Le travail arrive plus vite qu'il ne peut être traité, la file d'attente grandit sans limite, et la formule renvoie un nombre négatif, ce qui est la façon dont les mathématiques vous indiquent que le problème était mal posé.

Un système où ρ > 1 ne se stabilise pas dans un état dégradé. Il n'a pas d'état. Chaque heure, le volume de travail en retard est plus grand que l'heure précédente, et rien, si ce n'est réduire les arrivées ou ajouter de la capacité, ne pourra y changer quoi que ce soit. Observez la simulation s'exécuter : la file d'attente s'élève tout simplement au-delà du haut du graphique.

Deux hypothèses qu'il convient de mentionner

Le modèle M/M/1 suppose que les arrivées suivent une loi de Poisson et que les temps de service sont exponentiels, ce qui signifie que tous deux sont sans mémoire : la probabilité d'une arrivée dans la seconde qui suit ne dépend pas du temps déjà attendu. Le trafic réel est souvent plus irrégulier et présente davantage de rafales, et cette intermittence rallonge la file d'attente au lieu de la raccourcir.

Les chiffres ci-dessus sont donc optimistes. La véritable leçon subsiste malgré tout indépendamment de ces hypothèses, car elle découle du terme 1 − ρ au dénominateur plutôt que des détails des lois de probabilité. Tout système présentant des arrivées variables et une capacité finie se heurte au même mur au même endroit.

Viser un taux d'utilisation de 100 % ne relève pas de l'efficacité. C'est exiger que la file d'attente soit infinie.