Je souhaite allouer de la mémoire sur une partition de mon disque dur pour qu’elle fonctionne comme un espace d'échange sur une instance Amazon Elastic Compute Cloud (Amazon EC2).
Brève description
Pour allouer de la mémoire en tant qu'espace d'échange, procédez comme suit :
- Calculez la taille de l'espace d'échange.
- Créez une partition sur votre disque dur en tant qu'espace d'échange.
- Configurez la zone d'échange.
Vous pouvez également créer un fichier d'échange à utiliser comme espace d'échange. Pour plus d’informations, consultez la section Comment puis-je allouer de la mémoire en tant que fichier d’échange dans une instance Amazon EC2 ?
Remarque : l'instance utilise l'espace d'échange lorsque la RAM est pleine. Vous pouvez utiliser l'espace d'échange pour les instances qui disposent d'une petite quantité de RAM, mais cette solution n'est pas un substitut pour une plus grande quantité de RAM. L'espace d'échange étant situé sur le disque dur de l'instance, les performances sont plus lentes par rapport à la RAM réelle. Pour bénéficier d'une mémoire plus importante ou plus rapide, augmentez la taille de votre instance.
Pour plus d'informations sur l'espace d'échange, consultez la page Espace d'échange sur le site Web de Red Hat.
Résolution
Calculer la taille de l’espace d’échange
Il est recommandé d'utiliser un espace d'échange égal à deux fois la RAM physique, pour un maximum de 2 Go de RAM physique. Si vous avez besoin d'une quantité supérieure à 2 Go, ajoutez une demi RAM physique supplémentaire. Il est également recommandé de ne pas laisser votre espace d'échange descendre en dessous de 32 Mo. Reportez-vous au tableau suivant pour calculer la taille de votre espace d’échange :
| |
---|
Quantité de RAM du système | Espace d'échange recommandé |
2 Gio ou moins | 2 fois la quantité de RAM mais jamais moins de 32 Mo |
Plus de 2 Gio mais moins de 64 Gio | 0,5 fois la quantité de RAM |
Plus de 64 Go | Dépend de la charge de travail ou du cas d'utilisation |
Créer une partition sur votre disque dur en tant qu'espace d'échange
Pour créer une partition sur votre disque dur en tant qu'espace d'échange, procédez comme suit :
-
Utilisez AWS Systems Manager ou SSH pour vous connecter à l'instance.
-
Répertoriez les volumes disponibles :
sudo fdisk -l
-
Sélectionnez un périphérique à partitionner dans la liste. Dans cet exemple, nous utilisons le périphérique /dev/xvda.
sudo fdisk /dev/xvda
-
Créez une nouvelle partition :
\-> n
-
Sélectionnez un type de partition. Dans cet exemple, nous utilisons le type principal :
\-> p
-
Attribuez le numéro de partition. Dans cet exemple, nous utilisons la partition 2 :
\-> 2
-
Appuyez sur Entrée pour accepter la valeur par défaut « Premier secteur ».
-
Saisissez la taille du fichier d'échange. Dans cet exemple, nous disposons de 2 Go de RAM. La taille de la nouvelle partition est de 4 Go (spécifiée à l'aide de la valeur +4G).
\-> +4G
-
Enregistrez et quittez :
\-> w
Configurer la zone d'échange
Pour configurer la zone d'échange, procédez comme suit :
-
Exécutez la commande partprobe pour informer le système d'exploitation de la modification de la table de partition :
partprobe
-
Utilisez la partition d'échange que vous avez créée au cours des étapes précédentes pour configurer une zone d'échange Linux. Dans l'exemple suivant, la partition d'échange est /dev/xvda2.
mkswap /dev/xvda2
-
Ajoutez la partition en tant qu'espace d'échange :
sudo swapon /dev/xvda2
-
Affichez l'espace d'échange actuel :
sudo swapon -s
Vous obtiendrez une sortie de ce type :
Filename Type Size Used Priority/dev/xvda2 partition 4194300 0 -1
-
Après le redémarrage, suivez ces étapes pour rendre l'allocation de mémoire d'échange permanente :
Imprimez l'UUID à partir de la commande blkid :
sudo blkid
Copiez l'UUID de la partition d'échange à partir de la sortie précédente. Utilisez un éditeur de texte, tel que vi ou nano, pour ajouter ce qui suit au fichier /etc/fstab :
UUID=xxxxxxx none swap SW 0 0
-
Enregistrez le fichier, puis redémarrez.
Après avoir redémarré le système d'exploitation, exécutez la commande free -h pour vérifier la permanence de l'allocation de mémoire d'échange.