Así que estoy siguiendo un tutorial para instalar OTRS, que es el sistema de solicitud de tickets de código abierto. Entonces, para instalar, se requiere: 4 GB de espacio de intercambio. Aquí está el comando que usé:
[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
Puedes ver: Error de argumento inválido aquí. Intenté muchas veces en vano habilitarlo. Alguien por favor dígame cómo solucionar este error. (Estoy ejecutando este CentOS 7 en AWS Instance EC2)
[root@ip-10-0-7-41 ~]# df -T | awk '{print $1,$2,$NF}' | grep "^/dev"
/dev/xvda1 xfs /
dd
. Tenga en cuenta que no todos los sistemas de archivos admiten el intercambio o al menos no de la misma manera.Respuestas:
El problema
fallocate(1)
es que utiliza el sistemaioctls
de archivos para que la asignación sea rápida y efectiva, la desventaja es que no asigna físicamente el espacio, peroswapon(2)
syscall requiere un espacio real. Referencia: https://bugzilla.redhat.com/show_bug.cgi?id=1129205También me enfrenté a este problema anteriormente con mi caja. Entonces, en lugar de usar
fallocate
, usédd
como sugiere el enlacey seguir adelante con
chmod
,mkswap
yswapon
comandos. Bingo! Funcionó.fuente
dd
parece estar haciendo mucho más trabajo,time dd if=/dev/zero of=/myswap count=4096 bs=1MiB
toma 14.003 segundos, dondetime fallocate -l 4G /swap3
toma 0.018 segundos, pero producen el mismo tamaño de archivo. Supongo quefallocate
no se copia en ceros de la manera en que lodd
hace yswapon
necesita esos ceros.swapon: /swapfile: read swap header failed: Invalid argument
recibió este error después de intentarlo enswapon /swapfile
el servidor centos7 puppetenterpriseSiga estos pasos, funciona en las gotas de DigitalOcean. Probé. Cambie la cantidad 4096 según su necesidad
agrega esta línea:
ejecuta este comando
agrega esta línea
Para verificar el tamaño del intercambio
fuente
dd
comando seríadd if=/dev/zero of=/swapfile count=4 bs=1GiB
porque no puedo molestarme con calcular mebibytes en gibibytes sidd
puedo hacer eso por mí. ¿Sabía que en los días de antaño la gente lo expresó en kibibytes y lo calculó a mano en gibibytes? ¡Increíble!bs=
no es la forma correcta de hacerlo, ya que tiene consecuencias no deseadas, como la eficiencia del daño y probablemente no funcione en la mayoría de los alojamientos de bajo costo. Si solo eres perezoso, usacount_bytes
y dejadd
que te hagan las matemáticas y la elección de un tamaño de bloque eficiente:dd if=/dev/zero of=/swapfile count=4GiB iflag=count_bytes
=)iflag=count_bytes
Es una excelente mejora para tu comentario. Y no soy vago, me importa la legibilidad. En 6 meses, cuando vuelva a leer mi script (o cuando aparezca el próximo responsable), el lector debe comprender lo que está sucediendo. ¡No solo las computadoras leen el código, los humanos también leen el código!