Les clients posent souvent des questions sur le CPU steal time. En particulier ceux qui utilisent intensivement les processeurs et pour qui c’est un critère de performance clé. Il existe pas mal de différences dans la configuration et le comportement des processeurs et des cœurs entre les environnements physiques et virtuels. Même entre les fournisseurs de cloud, il existe des différences de configuration qui rendent difficile une comparaison directe à première vue. C’est pourquoi nous avons pensé qu’il serait utile de fournir un bref aperçu de notre configuration et de notre logique d’allocation de CPU pour les clients, ainsi que d’expliquer les sources les plus courantes de CPU steal time.
Tout d’abord, pour ceux qui ne sont pas familiers avec ce concept, le CPU steal time est le temps que votre processeur virtuel au sein de votre serveur cloud doit attendre pour obtenir le processeur physique réel pendant que l’hyperviseur est occupé à l’utiliser pour d’autres tâches (comme d’autres machines virtuelles/serveurs cloud). C’est un excellent article sur le CPU steal time qui vaut vraiment la peine d’être lu.
Quelques informations sur notre configuration CPU
La première chose à comprendre concerne la manière dont nous attribuons les cœurs entre les machines virtuelles sur chaque nœud de calcul physique hébergeant vos calculs. Les processeurs et leurs cœurs chez CloudSigma sont partagés. En d’autres termes, nous ne lions pas le serveur cloud d’un client à des cœurs spécifiques. Le temps CPU est attribué de manière dynamique par le planificateur du nœud de calcul physique et tout est partagé. Nous pensons que cela présente un certain nombre d’avantages pour offrir des performances globales plus fiables en permettant au nœud de calcul d’effectuer des ajustements d’allocation judicieux à la volée pour équilibrer la charge.
En combinaison avec cela, nous utilisons des Control Groups (cgroups en abrégé) pour garantir un temps CPU suffisant pour chacun des serveurs cloud en fonction des ressources que vous avez définies via la taille du serveur. En fin de compte, le planificateur décide quoi faire des ressources restantes et des cgroups. Il convient également de noter que nous réservons un ensemble de cœurs spécifiques en dehors de la plage d’allocation pour les charges de travail de calcul des clients. Nous utilisons ces cœurs pour exécuter le système d’exploitation de l’hôte physique. En particulier, nous réservons des cœurs supplémentaires pour le traitement des opérations réseau et de stockage. Tout cela vise à augmenter la stabilité globale de la machine. De plus, cela permet de vous offrir, en tant que client, des niveaux de performance fiables dans le temps, indépendamment de la charge des autres clients.
Les sources de CPU steal time dans un environnement virtualisé
Contrairement à un environnement physique, il existe plusieurs sources et situations dans lesquelles vous pouvez rencontrer du CPU steal time. En effet, les choses sont plus complexes dans un environnement virtualisé multi-locataire. Toutes ne correspondent pas réellement à une situation où vous ne recevez pas le temps CPU que vous devriez recevoir ; en fait, dans de nombreux cas, vous pouvez souvent absorber des cycles CPU inutilisés au-delà de votre taille allouée, mais ce n’est pas une situation où vous verriez du CPU steal time. Les trois situations les plus courantes sont détaillées ci-dessous.
Votre serveur cloud est surchargé
Cela arrive ! Tout le monde veut utiliser une capacité aussi proche que possible de ce pour quoi il paie, mais si le processeur alloué à votre serveur cloud virtuel n’est pas suffisant pour traiter la charge de travail, vous pouvez constater du CPU steal time à mesure que les tâches s’accumulent et s’alignent dans la file d’attente du processeur virtuel. Si c’est la cause principale du CPU steal time, la solution consiste à redimensionner le serveur cloud. S’il s’agit d’une surcharge temporaire, vous pouvez sans crainte laisser les choses en l’état. Vous verrez le CPU steal time disparaître lorsque votre charge diminuera.
Le serveur physique hébergeant votre serveur cloud est surchargé
S’il y a une surcharge de l’hôte, dans ce cas, il s’agit d’une défaillance de notre part. C’est rare mais cela peut arriver. Dans ce cas, nous utilisons la migration en direct pour migrer sans interruption les machines virtuelles vers d’autres nœuds de calcul physiques afin de ramener les niveaux de charge à la normale. En général, nous maintenons les hôtes bien en dessous de leur charge maximale. Donc, si vous continuez à observer cela sur une période prolongée, veuillez nous contacter. Notre support gratuit 24h/24 et 7j/7 peut vérifier l’hôte physique sur lequel vous vous trouvez. S’il n’y a pas de surcharge, il est peu probable que ce soit la cause principale de votre CPU steal time.
Vous utilisez une taille de cœur virtuel plus petite
Chez CloudSigma, nous vous donnons la possibilité de définir la taille du cœur virtuel pour profiter, par exemple, de plus de threads CPU ou de cœurs virtuels plus petits pour n'importe quelle taille de serveur cloud. Le serveur cloud au sein du système d'exploitation verra toujours la taille du cœur comme la taille physique complète.
Si le cœur physique est de 2.6GHz mais que votre VM est de 4GHz et dispose de deux cœurs, chaque cœur virtuel sera de 2GHz. Vous verrez donc toujours du temps de steal. En fait, c'est parce que vous recevez une part proportionnelle du cœur total et non la taille complète en raison de la taille plus petite du cœur virtuel. Par conséquent, vous devriez toujours ajuster tous les calculs de temps de steal CPU pour prendre en compte la taille plus petite du cœur virtuel si vous l'utilisez. Pour éviter cela, vous pouvez utiliser la taille de cœur complète par cœur. Vous pouvez le faire en étendant la taille du cœur virtuel à la taille complète du cœur CPU (par exemple, Intel v4 2.6GHz).
Conclusion
Le temps de steal CPU dans le cloud est un peu plus complexe que dans les environnements physiques mono-locataires traditionnels. Cependant, il existe bel et bien. Les rapports sur le temps de steal CPU par les systèmes d’exploitation ne se sont toutefois pas adaptés aux différentes conditions. Cela signifie que vous pouvez obtenir des faux positifs. Lorsque vous constatez du temps de steal CPU, cela signifie généralement qu'une contrainte de ressources est en cours. Nous espérons que cet article vous aidera à identifier rapidement la cause profonde et à garantir la continuité du bon fonctionnement de vos opérations.
Bon calcul !
Robert
Commentaires
Aucun commentaire pour l'instant. Soyez le premier.