Não consigo ativar o espaço de troca no CentOS 7

42

Então, estou seguindo um tutorial para instalar o OTRS, que é o Open Source Ticket Request System. Então, para instalar, é necessário: 4GB de espaço de swap. Aqui está o comando que eu usei:

[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

Você pode ver: Erro de argumento inválido aqui. Eu tentei muitas vezes em vão para ativá-lo. Alguém por favor me diga como corrigir esse erro. (Estou rodando este CentOS 7 no AWS Instance EC2)

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

2 respostas

75

O problema com fallocate(1) é que ele usa o sistema de arquivos ioctls para tornar a alocação rápida e eficaz, a desvantagem é que ela não aloca fisicamente o espaço, mas swapon(2) syscall requer um espaço real. Referência: link

Eu já havia enfrentado esse problema antes com a minha caixa. Então, em vez de usar fallocate , usei dd como o link sugere

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

e continuando com chmod , mkswap & swapon comandos. Bingo! Funcionou.

    
por 08.07.2016 / 11:06
7

Siga estas etapas, ele funciona nas gotículas da DigitalOcean. Eu testei. Altere a quantidade 4096 de acordo com a sua necessidade

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

adicione esta linha:

/swapfile   swap    swap    sw  0   0

execute este comando

sudo sysctl vm.swappiness=10

sudo nano /etc/sysctl.conf

adicione esta linha

vm.swappiness = 10
vm.vfs_cache_pressure = 50

Para verificar o tamanho da troca

swapon --summary
free -h
    
por 21.08.2018 / 06:47

Tags