场景:
最近查看服务器内存总是很少,提示需要增加内存空间,但是添加内存,要加钱,但是怎么样可以同时加大内存又不花钱。于是想到了虚拟内存,查看了一下,发现服务器并没有设置swap分区,于是我就从数据盘分出1g来当做swap空间
方法:
使用dd命令创建一个swap分区
[root@localhost Desktop]#dd if=/dev/zero of=/home/swap bs=1024 count=1048576
count的计算公式: count=SIZE*1024 (size以MB为单位)
这样就建立一个/home/swap的分区文件,大小为1G,接着需要格式化新建的SWAP分区:
[root@localhost Desktop]# mkswap /home/swap
再用swapon命令把这个文件分区变成swap分区
[root@localhost Desktop]#swapon /home/swap
(关闭SWAP分区命令为:[root@localhost Desktop]#swapoff /home/swap)
再用free -m查看一下,可以看出swap扩大了。
为了能够让swap自动挂载,要修改/etc/fstab文件
vi /etc/fstab
在文件末尾加上
/home/swap swap swap default 0 0
这样就算重启系统,swap分区就不用手动挂载了。
效果:
[root@AY130701184903434d7bZ classes]# free -m
total used free shared buffers cached
Mem: 491 443 48 0 0 17
-/+ buffers/cache: 424 66
Swap: 1023 113 910
由此可以看到显然内存空间有一些剩余,在每次重启tomcat的时候也不会报需要加大内存了
补充:小编的啊里云主机配置swap分区的办法
在安装Linux的时候,不知道swap空间分配多少比较好,所以会随便分配一个,在真正使用的时候,比如安装Oracle10g会要求很大的swap空间,发现swap空间不够,那应该怎么增加swap空间大小呢。
以下的操作都要在root用户下进行,首先先建立一个分区,采用dd命令比如
dd if=/dev/zero of=/home/swap bs=1024 count=512000
这样就会创建/home/swap这么一个分区文件。文件的大小是512000个block,一般情况下1个block为1K,所以这里空间是512M。接着再把这个分区变成swap分区。
/sbin/mkswap /home/swap
再接着使用这个swap分区。使其成为有效状态。
/sbin/swapon /home/swap
现在再用free -m命令查看一下内存和swap分区大小,就发现增加了512M的空间了。不过当计算机重启了以后,发现swap还是原来那么大,新的swap没有自动启动,还要手动启动。那我们需要修改/etc/fstab文件,增加如下一行
/home/swap swap swap defaults 0 0
你就会发现你的机器自动启动以后swap空间也增大了。
补充:
关于swap分区的用处,swap是当物理内存不够用的时候,把数据放到swap中,所以swap起到了一个虚拟内存的作用,在某种意义上来说也算是加大了内存空间。