web-dev-qa-db-fra.com

Je ne peux pas activer l'espace d'échange sur CentOS 7

Je suis donc en train de suivre un tutoriel pour installer OTRS qui est Open Source Ticket Request System. Donc, pour l'installer, il nécessite: 4 Go d'espace de swap. Voici la commande que j'ai utilisée:

[root@ip-10-0-7-41 ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/xvda1       50G   14G   37G  27% /
devtmpfs        478M     0  478M   0% /dev
tmpfs           496M     0  496M   0% /dev/shm
tmpfs           496M   13M  484M   3% /run
tmpfs           496M     0  496M   0% /sys/fs/cgroup
tmpfs           100M     0  100M   0% /run/user/1000
[root@ip-10-0-7-41 ~]# fallocate -l 4G /myswap
[root@ip-10-0-7-41 ~]# ls -lh /myswap
-rw-r--r--. 1 root root 4.0G Jul  8 08:44 /myswap
[root@ip-10-0-7-41 ~]# chmod 600 /myswap
[root@ip-10-0-7-41 ~]# mkswap /myswap
Setting up swapspace version 1, size = 4194300 KiB
no label, UUID=3656082a-148d-4604-96fb-5b4604fa5b2e
[root@ip-10-0-7-41 ~]# swapon /myswap
swapon: /myswap: swapon failed: Invalid argument

Vous pouvez voir: Erreur d'argument non valide ici. J'ai essayé à plusieurs reprises en vain de l'activer. Quelqu'un s'il vous plaît dites-moi comment corriger cette erreur. (J'exécute ce CentOS 7 sur AWS Instance EC2)

[root@ip-10-0-7-41 ~]# df -T | awk '{print $1,$2,$NF}' | grep "^/dev"
/dev/xvda1 xfs /
61
The One

Le problème avec fallocate(1) est qu'il utilise le système de fichiers ioctls pour rendre l'allocation rapide et efficace, l'inconvénient est qu'il n'alloue pas physiquement l'espace mais swapon(2) syscall nécessite un vrai espace. Référence: https://bugzilla.redhat.com/show_bug.cgi?id=1129205

J'avais déjà fait face à ce problème plus tôt avec ma boîte. Donc, au lieu d'utiliser fallocate, j'ai utilisé dd comme le suggère le lien

Sudo dd if=/dev/zero of=/myswap count=4096 bs=1MiB

et aller de l'avant avec les commandes chmod, mkswap & swapon. Bingo! Ça a marché.

114
Rahul

Suivez ces étapes, cela fonctionne sur les gouttelettes de DigitalOcean. J'ai testé. Modifiez le montant 4096 selon vos besoins

yum install nano -y

Sudo dd if=/dev/zero of=/swapfile count=4096 bs=1MiB
Sudo chmod 600 /swapfile
Sudo mkswap /swapfile
Sudo swapon /swapfile

Sudo nano /etc/fstab

ajoutez cette ligne:

/swapfile   swap    swap    sw  0   0

exécutez cette commande

Sudo sysctl vm.swappiness=10

Sudo nano /etc/sysctl.conf

ajouter cette ligne

vm.swappiness = 10
vm.vfs_cache_pressure = 50

Pour vérifier la taille du swap

swapon --summary
free -h
20
Dylan B