swapon не имеет никакого эффекта, / proc / swaps остается пустым

10

Мой сервер Ubuntu имеет не более 512 МБ памяти. Этого недостаточно для запуска Node.js + MongoDB.

Поэтому я решил добавить файл подкачки:

# dd if=/dev/zero of=/root/myswapfile bs=1M count=1024
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 4.69263 s, 229 MB/s
# mkswap /root/myswapfile
Setting up swapspace version 1, size = 1048572 KiB
no label, UUID=3c64da32-d0b4-49e5-92db-fba961b8ae28
# swapon /root/myswapfile

Нет сообщения об ошибке => успешно!

Новый файл подкачки теперь должен быть в списке, но это не так :

# swapon -s
Filename                Type        Size    Used    Priority

(пустой список)

Как я могу заставить это работать? В чем может быть причина отсутствия обмена?

user22611
источник
1
Попробуйте переместить файл подкачки в корень раздела aka/
2707974
1
Когда я впервые попробовал это, я попробовал это с / swapfile
user22611
2
Измените разрешение chmod 600 /root/myswapfileтогда сноваswapon /root/myswapfile
2707974
1
Это не помогло ... Интересное замечание: мне нужно поменять местами, прежде чем поменять местами, хотя своп никогда не появляется в списке.
user22611
3
ли freeпоказывать любое использование свопа?
MDD

Ответы:

4

Сначала удалите исходный файл подкачки:

sudo rm /myswapfile

Затем выполните следующие команды одну за другой:

sudo fallocate -l 1G /swapfile
sudo chmod 600 /swapfile
ls -lh /swapfile

Вывод должен быть похож на следующее:

-rw------- 1 root root 1.0G Aug  3 18:20 /swapfile

Теперь запустите следующие команды:

sudo mkswap /swapfile
sudo swapon /swapfile
sudo swapon -s

Теперь отредактируйте / etc / fstab, чтобы сделать изменения постоянными:

sudo nano /etc/fstab

и добавьте следующую строку в конец файла:

/swapfile    none            swap    sw              0       0

Нажмите CTRL+, oа затем нажмите, ENTERчтобы сохранить файл.

Нажмите CTRL+, xчтобы выйти из нано.

источник: https://www.digitalocean.com/community/tutorials/how-to-add-swap-on-ubuntu-14-04


Если это все еще не работает, вы можете проверить перестановку:

cat /proc/sys/vm/swappiness

Эта команда должна вернуть число. По умолчанию должно быть 60.

Если нет вывода, выполните следующие команды одну за другой:

sudo sysctl vm.swappiness=60
echo "vm.swappiness = 60" | tee -a /etc/sysctl.conf

-a Важно после teeили вы будете переписывать весь файл !!!

mchid
источник
1

Используйте fdiskдля создания свопа. Добавьте новый раздел, выберите Linux swap, запишите изменения. mkswap /dev/sd? Вы должны добавить его в свой /etc/fstab/. Измените XXX на UUID подкачки.

UUID=XXX none            swap    sw              0       0

Запустите, swapon -aчтобы сделать его доступным из /etc/fstab.

NicOx
источник
1

Файл подкачки должен быть в / swapfile с 600 правами.

#moving file and changing rights
sudo mv /root/myswapfile /myswapfile
sudo chmod 600 /myswapfile

sudo mkswap /myswapfile

добавить файл подкачки. Я думаю, что вы забыли эту команду

sudo swapon /myswapfile
#check swap is working
sudo swapon -s
UNIm95
источник
1
Команда chmod должна быть sudo chmod 600.... Он также может быть полезным , что делает его принадлежит корень: sudo chown root:root ....
Уилф
1
Если вы видите основной пост @ user22611, используйте, чтобы он работал как root.
UNIm95
1
makeswapmkswap
user22611
1
@ user22611 да. Вы правы. mkswap и chmod.
UNIm95
1
@ UNIm95 - вы можете отредактировать свое сообщение, чтобы исправить эти проблемы ...
Уилф
-1

Вы могли бы сделать это:

sudo umount -a
gedit /etc/fstab

и напишите, где это подкачка:

/proc/swap     proc   default  errors=noremount     1

и тогда это:

sudo mount -a

а затем запустите gpart, установите диск подкачки как swap и смонтируйте его на корневом диске dev, и он может нормально работать таким образом.

Майкл
источник
4
Э-э ... не sudo umount -aразмонтирует ВСЕ? (который может сломать материал при использовании) Если вы пытаетесь сначала размонтировать существующие объекты подкачки, может быть лучше найти их, mountа затем размонтировать их специально или использовать sudo swapoff -a.
Уилф
1
это то, что я сделал, не могло нарушить то, что ты сделал, и это единственное, что нужно сделать.
Майкл
2
Бег umount -a- действительно глупая идея. Размонтируйте то, что вам нужно, не все.
pzkpfw