Linux增大Swap分区,增加虚拟内存,以解决内存不足等问题
在内存不够大时,需要开启Swap,使用一部分硬盘,增加虚拟内存,解决内存容量不足的情况。
本文是用 Ubuntu16.04 来操作的,其他 Linux 系统类似。
很简单,跟着下面的步骤,一步一步来操作即可。
1. 查看当前是否开启了 Swap
在终端使用命令 free -m 查看输出结果。
$ free -m
total used free shared buff/cache available
Mem: 15881 10040 1157 1529 4684 3724
Swap: 0 0 0
可以看到最后一行是0 0 0,则表示当前没有开启。
如果已经开启的(Ubuntu16 默认有1G Swap),例如我这里已经设置了2930M的swap,我们仍然可以用下面的方法增大虚拟内存。
$ free -m
total used free shared buff/cache available
Mem: 15881 10040 1157 1529 4684 3724
Swap: 2930 946 1983
2. 创建 Swap 文件
我们首先新建一个单独的文件夹myswapfile,以储存swap文件:
$ mkdir myswapfile
$ cd myswapfile/
使用下面命令创建交换文件。因为要分配硬盘空间,所以有可能比较慢,等待一会
dd if=/dev/zero of=/swapfile bs=1M count=2048
count=2048 表示创建 2G 的虚拟内存,因为这里用到的单位是 M,如果要创建 6G 虚拟内存,则把2048 改成 6144 即可,因为 1024 * 6 = 6144。
当然也可以按G来创建,效果是一样的,这个是创建2G,每一块是1G,一共两块,直接用这个命令:
dd if=/dev/zero of=swapfile bs=1G count=2
输出:
记录了2+0 的读入
记录了2+0 的写出
2147483648 bytes (2.1 GB, 2.0 GiB) copied, 31.3265 s, 68.6 MB/s
可以使用 ls / | grep swapfile 命令查看一下,确保交换文件存在,创建成功。
~/myswapfile$ ls
swapfile
3. 激活 Swap 文件
依次执行下面的命令
cd myswapfile
sudo chmod 600 swapfile
mkswap swapfile
依次运行上面两个命令后,如果成功,将会看到类似下面的输出
Setting up swapspace version 1, size = 2 GiB (2147479552 bytes)
无标签, UUID=3a5fb2f9-5f5b-4e07-8c58-1acc5ceb2efc
4. 开启 Swap
sudo swapon swapfile
到这里,Swap 已经开启成功。我们再次使用 free -m 命令查看一下,你将看到类似下面的输出。
free -m
total used free shared buff/cache available
Mem: 15881 10110 1238 1535 4532 3641
Swap: 4978 998 3979
最后一行 Swap 将不再是2930,而是我们增加了2048M后的大小。
5. 设置系统启动时自动开启 Swap
使用编辑器编辑 /etc/fstab 文件,添加 Swap 自动开启的配置,这里推荐使用 gedit 进行编辑,也可以使用其他文本编辑工具,例如 nano。
# 编辑这个文件需要管理员权限
sudo gedit /etc/fstab
在 fstab 文件最后一行添加下面的内容
/home/aifool/myswapfile/swapfile none swap defaults 0 0
然后保存,退出 ,这样开机是就会自动添加这个swap空间的大小。
6.查看目前已存在的swap空间
我们可以添加多个储存在不同位置的swap分区,我们可以使用sudo swapon --show查看已经存在的swap:
sudo swapon --show
输出:
NAME TYPE SIZE USED PRIO
/dev/sda3 partition 977M 977M -2
/home/aifool/swapfile/swapfile file 1.9G 21.5M -3
/home/aifool/myswapfile/swapfile file 2G 0B -4
后面的这个2G的空间就是我刚才添加的。上面那个1.9G的是我之前添加。
更多推荐
所有评论(0)