Итак, я следую учебному пособию по установке OTRS, которая является Открытой системой запроса билетов. Таким образом, для установки требуется: 4 ГБ пространства подкачки. Вот команда, которую я использовал:
[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
Вы можете увидеть: Ошибка неверного аргумента здесь. Я тщетно пытался включить его. Кто-то, пожалуйста, подскажите, как исправить эту ошибку. (Я использую этот CentOS 7 на AWS Instance EC2)
[root@ip-10-0-7-41 ~]# df -T | awk '{print $1,$2,$NF}' | grep "^/dev"
/dev/xvda1 xfs /
dd
. Помните, что не все файловые системы поддерживают обмен или, по крайней мере, не одинаково.Ответы:
Проблема в
fallocate(1)
том, что он использует файловую системуioctls
для быстрого и эффективного выделения ресурсов, недостатком является то, что он не выделяет пространство физически, аswapon(2)
системный вызов требует реального пространства. Ссылка: https://bugzilla.redhat.com/show_bug.cgi?id=1129205Я уже сталкивался с этой проблемой раньше с моей коробкой тоже. Так что вместо того, чтобы использовать
fallocate
, я использовал,dd
как предлагает ссылкаи двигаться вперед
chmod
,mkswap
&swapon
команды. Бинго! Это сработало.источник
dd
кажется, что делает гораздо больше работы,time dd if=/dev/zero of=/myswap count=4096 bs=1MiB
занимает 14,003 секунды, гдеtime fallocate -l 4G /swap3
занимает 0,018 секунды, но они создают файл одинакового размера. Я предполагаю, чтоfallocate
не копирует в нули, какdd
этоswapon
нужно и нуждается в этих нулях.swapon: /swapfile: read swap header failed: Invalid argument
получил эту ошибку после попыткиswapon /swapfile
на centos7 сервере puppetenterpriseВыполните следующие действия, это работает на капли DigitalOcean. Я проверял. Измените сумму 4096 в соответствии с вашими потребностями
добавьте эту строку:
запустить эту команду
добавить эту строку
Чтобы проверить размер свопа
источник
dd
команда была бы,dd if=/dev/zero of=/swapfile count=4 bs=1GiB
потому что я не могу быть обеспокоен вычислением мебибайтов в гибибайтах, еслиdd
могу сделать это для меня. Знаете ли вы, что в былые времена люди выражали это в кибибайтах и рассчитывали вручную на гибибайты? Невероятно!bs=
это неправильный способ сделать это, так как это имеет непредвиденные последствия, такие как снижение эффективности и, вероятно, не работает на большинстве недорогих хостингов. Если вы просто ленивы, используйтеcount_bytes
и позвольтеdd
сделать для вас и математику, и выбор эффективного размера блока:dd if=/dev/zero of=/swapfile count=4GiB iflag=count_bytes
=)iflag=count_bytes
это отличное улучшение вашего комментария. И мне не лень, мне небезразлична читабельность. Через 6 месяцев, когда я снова читаю свой сценарий (или когда приходит следующий сопровождающий), читатель должен понимать, что происходит. Это не только компьютеры, которые читают код, люди тоже читают код!