Méthodes de détection des VPS surprovisionnés : pratique du Steal Time et de la chute du cache disque
Le surprovisionnement est un phénomène courant dans le secteur des VPS, mais un surprovisionnement excessif peut considérablement affecter les performances. Cet article propose une méthode pratique de détection basée sur deux dimensions : le Steal Time CPU et la chute du cache disque, pour vous aider à déterminer si votre VPS est surprovisionné de manière excessive, et fournit des stratégies pour y remédier.

En surveillant en continu le Steal Time CPU et le phénomène de chute du cache disque, associés à des tests de charge, il est possible d'identifier efficacement les VPS surprovisionnés de manière excessive, de limiter les pertes et d'optimiser votre stratégie de déploiement.
Pourquoi détecter la surallocation des VPS ?
Un VPS (serveur privé virtuel) est découpé à partir de ressources d'un serveur physique via la virtualisation. La surallocation (overselling) désigne le fait que le fournisseur vend un total de ressources virtuelles supérieur à la limite physique, une pratique courante dans l'industrie des centres de données. Une surallocation raisonnable peut réduire les coûts, mais une surallocation excessive peut provoquer des conflits CPU, des latences d'E/S disque en hausse, et même des problèmes de « bruit de voisinage ».
En tant qu'utilisateur, nous ne pouvons pas voir directement la configuration de surallocation du fournisseur, mais nous pouvons l'évaluer indirectement via les tendances des indicateurs système. Parmi ceux-ci, CPU Steal Time et chute du cache disque sont les deux signaux les plus directs et efficaces.
Indicateur clé n°1 : CPU Steal Time (temps volé)
Qu'est-ce que le Steal Time ?
Dans les systèmes Linux, le champ steal ou st représente le pourcentage de temps CPU de la machine virtuelle qui est préempté par l'hyperviseur (l'hôte). Lorsque les ressources CPU physiques sont insuffisantes, l'hyperviseur force l'ordonnancement, ce qui fait que votre VPS ne reçoit pas le temps CPU auquel il a droit. Ce temps d'attente est le Steal Time.
Un Steal Time élevé signifie que votre VPS « fait la queue pour le CPU », ce qui dégrade ses performances.
Comment vérifier le Steal Time ?
Utilisez la commande top et consultez la valeur st dans la ligne %Cpu(s) :
top -n 1 | grep '%Cpu'Exemple de sortie :
%Cpu(s): 5.1 us, 2.0 sy, 0.0 ni, 92.0 id, 0.0 wa, 0.9 hi, 0.0 si, 0.0 stIci, st correspond au Steal Time. Vous pouvez également utiliser la commande vmstat et surveiller la colonne st (nécessite les droits root) :
vmstat 1 5Seuil d'évaluation
- Dépassement continu de 5% : indique que le CPU de l'hôte est surchargé et que votre VPS commence à être affecté.
- Pics dépassant 10% : des baisses de performances notables peuvent apparaître, en particulier pour les tâches nécessitant un calcul continu.
- Dépassement prolongé de 20% : constitue une surallocation grave, il est recommandé d'envisager de changer de fournisseur.
Simulation de test de charge
Simplement regarder le Steal Time au repos peut ne pas être évident. Il est recommandé d'utiliser l'outil stress pour simuler une charge CPU et observer le comportement du Steal Time sous pression :
# 安装stress(Debian/Ubuntu)
apt install stress -y
# 满载所有CPU核心60秒
stress --cpu $(nproc) --timeout 60 &
# 同时运行top观察
sleep 5 && top -d 2 | grep '%Cpu'Si la valeur st grimpe en flèche en pleine charge, cela signifie que les ressources CPU physiques sont fortement accaparées par d'autres VPS, avec une surallocation sévère.
Deuxième indicateur clé : le précipice du cache disque
Qu'est-ce que le gouffre de cache disque ?
Les performances d'E/S disque d'un VPS dépendent fortement du cache dans la mémoire de l'hôte. Lorsque le cache est atteint, les vitesses de lecture et d'écriture sont extrêmement rapides ; lorsqu'il n'est pas atteint (surtout lors d'écritures et lectures massives soudaines), la vitesse du disque physique devient le goulot d'étranglement, et les performances chutent de plusieurs ordres de grandeur, formant un « gouffre ».
Si trop de VPS sont exécutés sur l'hôte, la proportion de cache disponible pour chaque VPS diminue, et il est plus facile de déclencher cet effet de gouffre.
Comment détecter une chute brutale du cache disque ?
Utilisez hdparm ou dd pour tester la vitesse de lecture/écriture du disque et observez les fluctuations de vitesse.
1. Test simple :
# Test d'écriture (fichier de 512 Mo)
time dd if=/dev/zero of=testfile bs=1M count=512 conv=fdatasync
# Test de lecture (après vidage du cache)
echo 3 > /proc/sys/vm/drop_caches # Nécessite root, vide le cache de pages
time dd if=testfile of=/dev/null bs=1M count=512Notez la différence de vitesse entre le premier test et les tests répétés. Si la vitesse d'écriture est très rapide au début (grâce au cache d'écriture) puis chute brusquement, cela signifie que la capacité du cache est limitée et que la concurrence est forte.
2. Utilisez fio pour un test plus précis :
# Installation de fio (Debian/Ubuntu)
apt install fio -y
# Test d'écriture aléatoire 4K, durée 60 secondes
fio --name=randwrite --ioengine=libaio --rw=randwrite --bs=4k --size=1G --numjobs=4 --iodepth=16 --runtime=60 --time_based --direct=1 --group_reportingObservez attentivement la distribution de lat (usec) et iops. Si la courbe de latence présente de fortes fluctuations, cela signifie que les performances du disque physique sont extrêmement instables en cas de miss du cache.
Méthode de détection du gouffre
Effectuez plusieurs tests de lecture/écriture de petits fichiers de manière consécutive, et enregistrez les IOPS ou le débit de chaque test. Par exemple :
for i in {1..10}; do
dd if=/dev/zero of=testfile bs=1M count=64 oflag=direct 2>&1 | tail -1
rm testfile
doneSi la vitesse chute soudainement de plusieurs centaines de Mo/s à quelques dizaines de Mo/s, et que cela se produit fréquemment, vous pouvez conclure qu'il s'agit d'un gouffre de cache disque.
Autres méthodes de détection auxiliaires
1. Disponibilité de la mémoire
La surallocation peut également se produire sur la mémoire. Utilisez free -h pour observer la mémoire disponible. Si elle est souvent inférieure à 10 %, et que le swap est fortement consommé, cela indique que la mémoire est également surallouée.
2. Test de concurrence des voisins
Essayez d'exécuter des tests de charge à des moments précis (par exemple, aux heures de pointe) et comparez le Steal Time avec les périodes creuses. Si les indicateurs se dégradent sensiblement aux heures de pointe, cela corrobore davantage la surallocation.
3. Surveillance à long terme
Il est recommandé d'utiliser sar ou atop pour enregistrer en continu les métriques système, pendant au moins une semaine. Observez les fluctuations de performances à des moments fixes chaque semaine.
# Enregistrer l'historique CPU avec sar (nécessite sysstat)
sar -u 60 > /tmp/cpu_history.log &Comment faire face à la survente ?
- Éviter les heures de pointe : pour les applications non temps réel, planifiez les tâches pendant les périodes creuses.
- Ajouter du cache : ajoutez un cache comme Redis au niveau de l'application pour réduire la dépendance aux I/O du disque sous-jacent.
- Changer de fournisseur : si le Steal Time reste élevé sur le long terme, migrez résolument vers un fournisseur de cloud qui ne fait pas de survente ou qui a un faible taux de survente.
- Choisir un forfait haute performance : certains fournisseurs proposent des VPS avec « CPU dédié » ou « survente limitée », plus chers mais avec des performances plus stables.
Nous recommandons d'utiliser un outil de détection professionnel avant l'achat. Vous pouvez obtenir un script de détection automatisé sur la page d'obtention des instructions pour générer en un clic un rapport de survente détaillé.
Conclusion
La détection de surallocation de VPS n'est pas une opération ponctuelle, mais nécessite une surveillance continue. Grâce aux deux indicateurs clés que sont le Steal Time et l'effondrement du cache disque, combinés à des tests de stress et à un enregistrement sur la durée, vous pouvez déterminer efficacement si votre VPS actuel est sujet à une surallocation excessive, et ainsi décider de le mettre à niveau ou de le migrer.
Rappelez-vous, aucun indicateur unique ne peut déterminer à 100% la surallocation, mais combiner des données de plusieurs dimensions suffit à vous faire voir la vérité.

J'espère que ce guide pratique vous aidera à éviter les pièges lors du choix d'un VPS. Si vous envisagez de changer de fournisseur, il est recommandé de tester d'abord votre serveur actuel selon les méthodes de cet article, puis de comparer les résultats avec ceux du fournisseur cible.