swapon не має ефекту, / proc / swaps залишається порожнім


10

Мій сервер Ubuntu має не більше 512 Мб пам'яті. Його недостатньо для запуску Node.js + MongoDB.

Тому я вирішив додати файл swap:

# 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

Немає повідомлення про помилку => вдало!

Тепер слід перелічити новий файл swap, але це не :

# swapon -s
Filename                Type        Size    Used    Priority

(порожній список)

Як я можу змусити його працювати? Що може бути причиною відсутності свопу?


1
Спробуйте перенести файл swap до кореня розділу aka/
2707974

1
Коли я вперше спробував це, я спробував це з / swapfile
user22611

2
Змініть дозвіл chmod 600 /root/myswapfileпотім зновуswapon /root/myswapfile
2707974

1
Це не допомогло ... Цікаве зауваження: мені потрібно робити обмін, перш ніж здійснити заміну, навіть якщо своп ніколи не з’являється у списку.
користувач22611

3
Чи freeпоказувати будь-яке використання свопу?
mdd

Відповіді:


4

Спочатку видаліть свій оригінальний файл swap:

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або ви будете переписувати весь файл !!!


1

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

UUID=XXX none            swap    sw              0       0

Запустіть, swapon -aщоб зробити це доступним від /etc/fstab.


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

1
Команда chmod повинна бути sudo chmod 600.... Можливо, варто також зробити його власником root : sudo chown root:root ....
Вільф

1
Якщо ви бачите головне повідомлення @ user22611, використовуйте, переконайтеся, що він працює як root.
UNIm95

1
makeswapmkswap
користувач22611

1
@ user22611 так. Ти правий. mmwp та chmod.
UNIm95

1
@ UNIm95 - ви можете відредагувати свою публікацію, щоб виправити ці проблеми ....
Вільф

-1

Ви можете це зробити:

sudo umount -a
gedit /etc/fstab

і запишіть, де це своп:

/proc/swap     proc   default  errors=noremount     1

а потім це:

sudo mount -a

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


4
Помилка ... не sudo umount -aвідключає ВСЕ? (яка може зламатися при використанні) Якщо ви намагаєтесь спочатку відключити наявні речі, можливо краще їх знайти, mountа потім спеціально відключити або використати sudo swapoff -a.
Вільф

1
це те, що я зробив, не зміг би зламати нічого з того, що ти зробив, і це єдине, що потрібно зробити.
Майкл

2
Біг umount -a- це справді німа ідея. Демонтуйте те, що потрібно демонтувати, не все.
pzkpfw
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.