Hexo

点滴积累 豁达处之

0%

启用虚拟内存

为了减少购买昂贵的内存资源,可以暂时使用虚拟内存代替

1 查看内存使用情况

free -m

1
2
3
4
5
root@supermap:/swap# free -m
total used free shared buffers cached
Mem: 488 480 8 0 1 337
-/+ buffers/cache: 141 346
Swap: 0 0 0

虚拟内存空间竟然为0,实在是没有想到!!!

2 创建虚拟内存磁盘卷

创建要作为swap分区的文件:增加1GB大小的交换分区,则命令写法如下,其中的count等于想要的块的数量(bs*count=文件大小),如下面是2G

1
dd if=/dev/zero of=/root/swapfile2 bs=1M count=2048

修改文件权限,如不修改,在启用swap文件的时候会提示下面信息(不影响使用,建议修改)

1
chmod 0600 /root/swapfile2

3 将磁盘卷转为虚拟内存卷

1
mkswap /root/swapfile2

4 启用虚拟内存服务

1
swapon /root/swapfile2

5 查看内存使用情况

1
2
3
4
5
root@supermap:/swap# free -m
total used free shared buffers cached
Mem: 488 480 8 0 1 337
-/+ buffers/cache: 141 346
Swap: 2047 0 2047

6 关闭虚拟内存服务

1
swapoff -v /swap/swapadd

7 移动虚拟内存空间

如果当前的虚存所在的磁盘空间不够,可以首先关闭虚存服务,将其移动到别的磁盘,再启用即可。

1
2
3
swapoff -v /swap/swapadd
mv /swap/swapadd /mnt/swap
swapon /swap/swapadd

系统开机时自启用

在文件/etc/fstab中添加一行

1
2
3
vim /etc/fstab

/root/swapfile2 swap swap defaults 0 0

调整swap空间使用的优先级

如果内存够大,应当告诉 linux 不必太多的使用 SWAP 分区, 可以通过修改 swappiness 的数值。

swappiness=0的时候表示最大限度使用物理内存,然后才是 swap空间,swappiness=100的时候表示积极的使用swap分区,并且把内存上的数据及时的搬运到swap空间里面。各个操作系统的优先级可能都不一样,如果不调整,你会发现添加的虚拟内存几乎没有用到

1
2
3
4
5
查看当前swappiness值
# cat /proc/sys/vm/swappiness

修改swappiness值为60(临时修改,重启后即还原为默认值)
# sudo sysctl vm.swappiness=60

永久修改swappiness默认值(重启生效)

1
2
3
# vim /etc/sysctl.conf

找到vm.swappiness ,如果没有则需要手动添加一行 vm.swappiness = 60 保存即可