很多时候在运行一些大型应用的时候都会出现内存不够的情况
但是如果想要扩大内存就非常麻烦,因为要重装系统,重新给虚拟机分配内存,这就很麻烦。这里我提供一种可以在系统内扩大内存的方法。
Linux中有种特殊的系统分区,是在我们安装Linux是就一定要有的系统分区,如果没有,系统就无法运行,那就是交换分区(swap)这个分区平时是不会被使用的,只有我们系统内存用尽了时候才会使用,这其实就和我们的虚拟内存类似。
下面就是如何扩大我们的swap空间:
[root@localhost ~]# free -m
total used free shared buff/cache available
Mem: 1984 130 1714 8 139 1688
Swap: 3813 0 3813
输入命令查看内存使用情况,可以看到swap有3813M,未被使用。现在我们就需要扩大swap分区。
模拟一个磁盘块设备:
[root@localhost ~]# dd if=/dev/zero of=/tmp/newdisk bs=1M count=2000
2000+0 records in
2000+0 records out
2097152000 bytes (2.1 GB) copied, 11.0796 s, 189 MB/s
这里我模拟成功了。查看一下:
[root@localhost tmp]# ls
newdisk systemd-private-1387a387328e4641b228ee49466edb9c-vmtoolsd.service-UGTy5z
把这个文件格式化成为一个交换分区:
[root@localhost tmp]# mkswap -f /tmp/newdisk
Setting up swapspace version 1, size = 2047996 KiB
no label, UUID=8c609c9b-aab5-4b80-bd6f-047d23fd8c4f
把它划入交换分区:
[root@localhost tmp]# swapon newdisk
swapon: /tmp/newdisk: insecure permissions 0644, 0600 suggested.
[root@localhost tmp]# free -m
total used free shared buff/cache available
Mem: 1984 132 70 8 1781 1646
Swap: 5813 0 5813
这里可以看到swap增加了两个G.
当不用这个的时候也可以把这个关掉:
[root@localhost tmp]# swapoff newdisk
[root@localhost tmp]# free -m
total used free shared buff/cache available
Mem: 1984 131 71 8 1781 1647
Swap: 3813 0 3813
恢复原样了。