swapon无效,/ proc / swaps保持为空


10

我的Ubuntu服务器的内存不超过512 MB。仅运行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

(空列表)

我该如何运作?缺少交换的可能是什么原因?


1
尝试将交换文件移至aka分区的根/
2707974 2015年

1
首次尝试时,我使用/ swapfile进行了
user22611

2
chmod 600 /root/myswapfile然后再次更改swapon /root/myswapfile
渗透率

1
那并没有帮助...有趣的通知:即使交换从未出现在列表中,我也需要在交换之前进行交换。
user22611

3
是否free显示任何交换使用情况?
mdd 2015年

Answers:


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退出nano。

来源:https : //www.digitalocean.com/community/tutorials/how-to-add-swap-on-ubuntu-14-04


如果仍然无法解决问题,您可能要检查swappiness:

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 swap,写入更改。 mkswap /dev/sd? 您需要将其添加到/etc/fstab/。将XXX更改为交换UUID。

UUID=XXX none            swap    sw              0       0

运行swapon -a使其从中可用/etc/fstab


1

您的交换文件应位于具有600个权限的/ swapfile中。

#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 ...
2015年

1
如果看到@ user22611的主要帖子,请使用他作为root用户。
2015年

1
makeswapmkswap
user22611

1
@ user22611是。你是对的。mkswap和chmod。
2015年

1
@ UNIm95-您可以编辑您的帖子以解决这些问题...。–
Wilf

-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
2015年

1
这是我所做的,我不会破坏您所做的任何事情,这是唯一要做的事情。
迈克尔

2
跑步umount -a确实是一个非常愚蠢的想法。卸载需要卸载的内容,而不是全部。
pzkpfw
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.