2 votes

Pourquoi mes instances AWS deviennent-elles soudainement non réactives en signalant un taux élevé de "CPU volé" ?

La configuration J'ai un tas d'instances t2.small EC2 en cours d'exécution hébergeant la bibliothèque de traitement d'images appelée thumbor pour le redimensionnement d'images dynamique. Les originaux sont chargés depuis S3. En face des instances, j'ai un répartiteur de charge EC. J'ai installé le monitoring des serveurs New Relic sur les serveurs.

Le problème À des moments aléatoires, mes serveurs commencent soudainement à connaître des temps de réponse moyens extrêmement élevés. Si je regarde les statistiques dans New Relic, la seule chose que je vois, c'est que les serveurs subissent des pics de CPU de manière constante en signalant "stolen" CPU.

Il semble que mes serveurs aient une capacité suffisamment élevée et ce n'est PAS comme s'il y avait des pics extrêmes de débit pendant ce temps.

J'ai remarqué que si j'arrête et redémarre les serveurs. Alors, le CPU volé disparaît, et ils fonctionnent à nouveau correctement - jusqu'à la prochaine fois - cela peut prendre des heures ou des jours entre les deux.

Pourquoi cela se produit-il, et que puis-je faire à ce sujet?

New relic Server monitoring reporting sudden high Stolen CPU

EC load balancer reporting high response time but no significant increase in throughput

11voto

sysadmin1138 Points 129885

Les instances de la série t chez Amazon utilisent un système de quota pour l'utilisation du processeur. Lorsque vous atteignez votre quota, vous commencez à voir vos pourcentages volés augmenter. Il n'y a pas grand-chose que vous puissiez faire à ce sujet, c'est structurel à l'offre.

  • Utilisez moins de CPU en général.
  • Utilisez une instance de la série t plus grande.
  • Utilisez l'une des séries m ou c, qui n'ont pas de quota.

2voto

Tim Points 28848

Comme cela a été dit par d'autres, il est très probable que vous soyez en train de manquer de crédits CPU. Fondamentalement, avec les instances T2, vous obtenez une fraction d'un CPU, 20% d'un cœur dans le cas d'un t2.small, avec la possibilité de passer à un ou deux cœurs (selon votre type d'instance) jusqu'à la limite de vos crédits CPU. Vous ne devriez pas non plus utiliser d'instance T derrière un équilibreur de charge dans la plupart des cas, en raison des performances variables qui peuvent entraîner des problèmes étranges et difficiles à diagnostiquer.

Si vous manquez de crédits, vous devez passer à une instance T plus grande ou passer à une instance qui a un accès constant aux cœurs. Les instances C (optimisées pour le calcul) ou M (usage général) seraient plus appropriées.

Vous pouvez surveiller vos crédits CPU avec CloudWatch. Cela vous aidera à décider si vous devez opter pour une instance T plus grande ou une instance C/M.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X