linux可以通过增加swap分区来增加虚拟内存。当物理内存不够的时候,就会使用虚拟内存。
swap分区,即交换区,Swap空间的作用可简单描述为:当系统的物理内存不够用的时候,就需要将物理内存中的一部分空间释放出来,以供当前运行的程序使用。那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存到Swap空间中,等到那些程序要运行时,再从Swap中恢复保存的数据到内存中。这样,系统总是在物理内存不够时,才进行Swap交换。 其实,Swap的调整对Linux服务器,特别是Web服务器的性能至关重要。通过调整Swap,有时可以越过系统性能瓶颈,节省系统升级费用。
下面是增加虚拟内存的步骤:
1、打开终端,切换到root用户,输入:free -m查看内存状态
可以看到我们定位 swap就是我们的虚拟内存。这里没有分配内存,所以是0
2、输入df -B M(或df -m)查看各分区当前使用情况
3、选择一个较大的分区,建立分区文件:
在根目录新建一个名为swapadd,大小为512M的虚拟内存文件,输入命令:
[root@1ZDMAmmz]# dd if=/dev/zero of=/swapadd bs=1024 count=524288
1
[root@1ZDMAmmz]# dd if=/dev/zero of=/swapadd bs=1024 count=524288
执行该命令需要等待一分钟左右,才可以看到运行结果
524288+0 records in
524288+0 records out
536870912 bytes (537 MB) copied,26.1709 秒,51.1 MB/秒
1
2
3
524288+0recordsin
524288+0recordsout
536870912bytes(537MB)copied,26.1709秒,51.1MB/秒
4、移动该文件到空间较大的其他分区:
[root@1ZDMAmmz]# mkdir /mnt/swap
[root@1ZDMAmmz]# mv /swapadd /mnt/swap
1
2
[root@1ZDMAmmz]# mkdir /mnt/swap
[root@1ZDMAmmz]# mv /swapadd /mnt/swap
注意,这里swapadd前面需要加上’/’
5、执行以下命令启用虚拟内存
命令如下
[root@1ZDMAmmz]# mkswap /mnt/swap/swapadd
Setting up swapspace version 1, size = 524284 KiB
no label, UUID=a5c8b651-6f64-4414-bb5f-580b742acfce
[root@1ZDMAmmz]# swapon /mnt/swap/swapadd
1
2
3
4
[root@1ZDMAmmz]# mkswap /mnt/swap/swapadd
Settingupswapspaceversion1,size=524284KiB
nolabel,UUID=a5c8b651-6f64-4414-bb5f-580b742acfce
[root@1ZDMAmmz]# swapon /mnt/swap/swapadd
查看内存:
[root@1ZDMAmmz]# free -m
total used free shared buffers cached
Mem: 498 492 6 0 15 302
-/+ buffers/cache: 174 323
Swap: 1535 0 1535
1
2
3
4
5
[root@1ZDMAmmz]# free -m
totalusedfreesharedbufferscached
Mem:4984926015302
-/+buffers/cache:174323
Swap:153501535
通过以上输出信息可以看出,已经成功创建swap分区。
设置成永久生效
虽然现在已经生效,但是等下次服务器重启之后。该swap虚拟磁盘会失效,为保证永久生效,需要在/etc/fstab文件添加如下指令集:
echo "/swap/swapadd swap swap defaults 0 0" >> /etc/fstab
1
echo"/swap/swapadd swap swap defaults 0 0">>/etc/fstab
好了重启电脑可以看到我们的虚拟内存已经增加了。
6、如果不需要使用新增的虚拟内存,则输入:
swapoff -v /mnt/swap/swapadd
1
swapoff-v/mnt/swap/swapadd