Corruption du cache vLLM plonge les ingénieurs en intervention dans le chaos

À 8 h pile, le téléphone d’un ingénieur d’astreinte a vibré sous l’afflux de 14 720 requêtes par seconde ciblant un service vLLM utilisant PagedAttention. Ce qui aurait dû être une garde tranquille s’est transformé en une séance marathon de débogage après que les logs aient affiché « Corruption du cache détectée » et que la pile de traitement des modèles se soit figée.
L’effet domino d’une erreur d’une ligne
L’équipe a retracé la cascade jusqu’à un défaut subtil dans leur politique d’éviction du cache. Chaque nuit, des tâches en arrière-plan envoyaient de nouvelles requêtes dans la file d’attente de vLLM, mais une erreur d’un décalage dans cette politique laissait des paires clé-valeur obsolètes flotter dans le magasin KV distribué. Lorsque PagedAttention interrogeait le cache corrompu, le magasin lançait une exception, qui remontait jusqu’au service d’inférence et réduisait le débit à zéro. Les ingénieurs ont tenté les solutions habituelles – augmenter les délais NCCL, redémarrer les pods, vérifier l’état des GPU – pour constater que la même erreur réapparaissait à chaque fois.
La correction qui a coûté une matinée, les alertes qui épargneront le sommeil
Après des heures de recherches, la correction s’est résumée à une seule ligne modifiée dans le Dockerfile. La leçon ? Les bugs subtils de concurrence dans les grappes multi-GPU peuvent rester dormants jusqu’à ce qu’une charge de pointe les révèle. Pour éviter la prochaine surprise à 8 h, l’équipe a déployé trois nouvelles alertes Grafana : l’une signalant les échecs de communication NCCL, une autre surveillant les pics de latence de l’opération all-reduce, et une troisième alertant sur la base de quantiles pour détecter les ralentissements avant que les utilisateurs ne les remarquent. Désormais, PagerDuty avertit l’ingénieur avant que la politique d’éviction du cache ne puisse empoisonner à nouveau le cluster.
Pourquoi c’est important
Cet incident montre à quel point une simple erreur de configuration peut, sous charge, déclencher une panne majeure. Les équipes utilisant vLLM ou des frameworks similaires optimisés pour les GPU devraient auditer la logique d’éviction du cache et ajouter des alertes basées sur la latence pour détecter la corruption avant qu’elle ne se propage. L’épisode souligne aussi la fragilité des pipelines multi-GPU : une politique mal alignée peut paralyser des services plus vite que les vérifications matérielles ne permettent d’en identifier la cause racine.
Source : DEV Community. Synthèse éditoriale assistée par IA — TechnoExpress.

