J'ai démarré quelques serveurs sur EC2 et ils n'ont pas d'échange.
Est-ce que je fais quelque chose de mal ou est-ce que les machines n'en ont tout simplement pas?
linux
ubuntu
amazon-ec2
swap
Rafamvc
la source
la source
Réponses:
Vous avez raison, les images EBS Ubuntu EC2 ne sont pas fournies avec un espace d'échange configuré (pour la version 11.04 au moins). Les images de type instance "normales" ont une partition de swap, bien que seulement 896 Mo sur celle que j'ai testée.
Si un processus explose et que vous n'avez pas d'espace d'échange, votre serveur risque de s'arrêter lentement avant que le tueur de MOO n'intervienne, alors qu'avec l'échange, il devient simplement lent. Pour cette raison, j'aime toujours avoir un espace d'échange, même avec assez de RAM. Voici vos options:
Créez un volume EBS (2 à 4 fois la taille de votre RAM), attachez-le à votre instance (j'aime l'appeler / dev / xvdm pour "mémoire")
sudo mkswap /dev/xvdm
, ajoutez-le à fstabsudo swapon -a
, et vous êtes prêt à partir. . Je l'ai déjà fait auparavant et cela fonctionne bien, mais c'est probablement un peu plus lent que le magasin d'instances, car il passe par le réseau.Vous pouvez également repartitionner votre disque pour ajouter une partition de swap, bien que cela puisse nécessiter la création d'une nouvelle AMI. Je n'ai pas été capable de le faire dans une instance en cours d'exécution, car je ne peux pas démonter le système de fichiers racine et je n'ai même pas accès au périphérique de disque (/ dev / xvda), mais uniquement à la partition (xvda1).
Ou vous pouvez créer un fichier d'échange. Ceci est ma solution préférée en ce moment.
Terminé. :) Je sais que beaucoup de gens craignent d'utiliser des fichiers plutôt que des partitions, mais cela fonctionne certainement assez bien comme espace d'échange d'urgence.
la source
Le meilleur emplacement pour le swap IMHO est le magasin d'instances. Pourquoi? AWS ne vous facture pas les entrées / sorties sur le magasin d'instances. En outre, le magasin d'instance est plus performant que EBS dans de nombreux cas. Assurez-vous simplement que vous avez un script qui recrée le fichier d'échange au cas où vous arrêteriez l'instance. Les redémarrages sont bien. Pourquoi oh pourquoi ce n'est pas là par défaut?
Localisons le magasin d'instance.
Hourra, 160.1GB gratuitement! Mettez votre échange là-bas et oubliez 100 $ de dépassement par serveur lorsque votre échange basé sur EBS est envahi par erreur. Expérience malheureuse parler ici.
Apparemment, dans certains cas, vous ne voyez pas le magasin d'instances.
la source
Remarque : Amazon a modifié sa politique de tarification et ne facture pas les demandes d'E / S à partir de la mi-2016. La réponse est conservée ici pour des raisons historiques, mais l'utilisation de swap (ou non) sur les instances basées sur EC2 EBS n'a aucune incidence financière.
C'est par conception. L'échange est désactivé par défaut sur les instances EC2 basées sur EBS, afin d'éviter des coûts imprévisibles.
Si vous avez une application gourmande en mémoire qui devient malveillante (par exemple, sur une petite ou une petite instance), elle peut générer un assez grand nombre de demandes d'E / S sur votre volume EBS.
Amazon facture 0,10 USD par million de demandes d'E / S (voir http://aws.amazon.com/pricing/ebs/ ).Dans des conditions normales, vous ne devriez pas vous en préoccuper. généralement, le coût des demandes d’E / S, même sur des instances plus petites, de quelques dollars, le cas échéant. Donc, si vous savez que vous avez une instance correctement dimensionnée et que l’échange ne sera utilisé que très rarement, continuez et activez-le. Mais soyez prudent avec de petites instances.
Si vous activez l'échange, vous voudrez peut-être garder un œil sur les rapports d'utilisation. Si vous le souhaitez, vous pouvez également configurer une alerte de facturation en accédant au panneau de configuration CloudWatch et en créant une nouvelle alarme pour le montant total facturé. De cette façon, vous serez immédiatement informé que quelque chose de bizarre se passe avec vos instances.
la source
Vérifiez le
/etc/fstab
fichier, ils ont probablement été mis en place sans échange dans l'image que vous utilisez. Je pense que certaines personnes courent sans échange de serveurs car elles s'attendent à ne jamais utiliser plus que la totalité de la mémoire. L'échange rend tout extrêmement lent.Cependant, je suis toujours paranoïaque à propos de certains processus gonflant en mémoire, donc je pense qu'il serait prudent de vous simplement de configurer un lecteur d'échange et de recréer une image à partir de l'instance ec2 en cours d'exécution.
la source
Une solution simple à l' exécution
swap
enEC2
images est d'exécuterswap
compressé aveclz4
enram
aveczram-init
.systemd
&openrc
.Cette solution ne pas prendre
ram
loin de lahost
:la source
zswap
un cache RAM compressé au-dessus d'un fichier / disque d'échange normal: wiki.archlinux.org/index.php/zswap . Voir cnx-software.com/2018/05/14/… pour plus d'informations sur zram.