La micro-instance Amazon EC2 a 100% d'utilisation du processeur

9

Ma micro-instance Amazon EC2 utilise très souvent 100% du processeur. Je n'ai qu'une installation wordpress dessus. Je suis toujours en mode production, donc pas d'utilisateurs mais j'obtiens 100% d'utilisation du CPU.

Est-ce que quelqu'un sait comment le réduire? Je reçois des notifications par e-mail Amazon toutes les heures à cause de cela qui dure plus de 300 secondes.

J'ai déjà déplacé ma base de données vers RDS mais je n'ai pas résolu ce problème. Cela l'a juste amélioré un peu. Avant de passer à RDS avec ma base de données, mon site Web s'est toujours totalement écrasé lors du chargement d'une seule page Web.

Mon mysqld.log donne une erreur errno 12, c'est pourquoi j'ai également fait innodb_buffer_pool_size = 256M dans mon.cnf mais n'a rien apporté.

Serait reconnaissant pour chaque conseil.

Jaba L
la source
1
vous devez surveiller votre instance pour voir ce qui se passe. Vous ne dites pas quel système d'exploitation vous utilisez, mais si Linux, c'est rapide et facile. À plus long terme, vous devriez envisager autre chose.
user9517
Dans linux top command quel processus consomme votre CPU. Appuyez sur (Shift + P) pour trier les processus selon l'utilisation du CPU Merci Sandeep
ZVIK
Merci @lian! Oui j'utilise Linux. Il est donc normal qu'il monte très souvent à 100% CPU? Je le surveille déjà avec une alarme et je reçois ces notifications d'alarme ennuyeuses par e-mail plusieurs fois par jour. Voulez-vous dire que Ec2 n'en vaut pas la peine, surtout pas avec de petits packages uniquement lorsque vous investissez beaucoup? Merci pour votre aide
Jaba L
Merci @ZVIK pour votre aide! Pourriez-vous, s'il vous plaît, l'expliquer un peu plus en détail. Je pense que je ne le comprends pas encore. Où puis-je appuyer sur (Maj + P). Dans la ligne de commande SSH? Désolé pour mon inexpérience. Une autre chose qui apparaît est que mon terminal SSH devient très lent après un certain temps. Taper une commande ssh et obtenir une réponse prend parfois très longtemps, c'est très retardé. Je pense que c'est aussi à cause de l'utilisation du CPU. Ce n'est qu'en redémarrant avec les commandes "sudo service httpd stop / start" et "sudo service mysqld restart" que je le lance à nouveau plus rapidement. Mais ça ne dure pas longtemps.
Jaba L
@Jaba LI suppose qu'il y a une fuite de mémoire dans le code
ZVIK

Réponses:

7

Gardez à l'esprit que les m2.microinstances ne sont que cela - elles sont petites. N'importe quelle quantité réelle de charge les maximisera.

Comme @zvik l'a souligné dans ses commentaires, vous devez savoir quels processus consomment le plus de mémoire et / ou de cycles CPU. Il a recommandé l'exécution top, qui est une commande trouvée sur les distributions Linux. En appuyant sur Shift-P, il les triera en fonction de l'utilisation du processeur. Vous devrez utiliser ces informations pour déterminer où se trouve le goulot d'étranglement. Par exemple, s'il s'agit d'Apache, la configuration par défaut d'Apache peut être de lancer plus de processus que le serveur n'en est capable.

Essayez de lancer topet de voir quelles commandes consomment le plus de ressources.

Andrew M.
la source
1
Je l'ai vérifié et Apache utilise la plupart des ressources. m2.micro obtient vraiment la charge si facilement. Je pensais que je pourrais utiliser le micro pour un petit site de production, mais c'est malheureusement impossible. Merci pour votre aide
Jaba L
15

Votre problème peut être dû au "vol de CPU" qui se produit sur la pile d'Amazon (et en fait, sur toute infrastructure virtualisée). Vous pouvez en savoir plus sur le vol de CPU ici .

Essentiellement, votre machine virtuelle est inactive et Amazon "emprunte" certains de vos cycles de processeur pour donner à quelqu'un d'autre qui en a besoin - c'est la pratique standard pour un environnement virtualisé où les ressources physiques du serveur comme l'utilisation de la RAM et les cycles de processeur sont souvent extrêmement sur-engagés .

Pour vérifier le vol du processeur, exécutez topet recherchez la %stvaleur mise en évidence ici:

sortie de commande supérieure

Si cette valeur est différente de zéro, cela signifie que les cycles de CPU de votre VM sont "empruntés".

Craig Watson
la source
1
Merci beaucoup @ craig-watson pour votre réponse. Je viens de vérifier% st et c'est entre 0-5%. Merci aussi pour le lien, c'était très informatif
Jaba L