Linux 创建和增加 Swap 分区教程

有时候我们机器的内存不够时,就可以通过创建 Swap 分区来缓解这种尴尬场面,Linux 下的 Swap (交换分区)相当于 Windows 下的”虚拟内存”,当系统内存不够时,把一部分硬盘空间虚拟成内存使用,从而解决内存不够用的情况。下面介绍下 Linux 如何创建和增加 Swap 分区。
系统在什么情况下才会使用SWAP?
实际上,并不是等所有的物理内存都消耗完毕之后,才去使用swap的空间,什么时候使用是由swappiness 参数值控制。

cat /proc/sys/vm/swappiness
60
该值默认值是60.

swappiness=0的时候表示最大限度使用物理内存,然后才是 swap空间,
swappiness=100的时候表示积极的使用swap分区,并且把内存上的数据及时的搬运到swap空间里面。
现在服务器的内存动不动就是上百G,所以我们可以把这个参数值设置的低一些,让操作系统尽可能的使用物理内存,降低系统对swap的使用,从而提高系统的性能。

一般来说可以按照如下规则设置swap大小:
4G以内的物理内存,SWAP 设置为内存的2倍。
4-8G的物理内存,SWAP 等于内存大小。
8-64G 的物理内存,SWAP 设置为8G。
64-256G物理内存,SWAP 设置为16G。

一、 Swap 分区添加【FILE形式】

1.查看 Linux 当前分区情况:

free -m

2.创建要作为 Swap 分区文件(其中 /root/swapfile 是文件位置,bs*count 是文件大下,例如以下命令就会创建一个 2G 的文件):

dd if=/dev/zero of=/root/swapfile bs=1024 count=2048k

3.建立 Swap 的文件系统(格式化为 Swap 分区文件):

mkswap /root/swapfile

4.启用 Swap 分区:

swapon /root/swapfile

5.查看 Linux 当前分区:

free -m

如果有 Swap 就说明创建成功了:
Linux 查看 Swap 分区
6.设置开启启动,在 /etc/fstab 文件中加入一行代码:

/root/swapfile swap swap defaults 0 0

删除swap file

	swapoff /root/swapfile
	rm /root/swapfile 

 去掉fstab中添加启动行

二、Swap 分区添加【IMG形式】

1.通过dd命令增加swap

	dd if=/dev/zero of=/var/swap.img bs=1024 count=512000
	# 我们将swap文件写在/var/swap.img
	# 参数:
    #   if 输入of 输出bs 块大小count 总大小

2.建立

sudo mkswap /var/swap.img

3.启动

sudo swapon /var/swap.img

4.查看swap是否生效:

free
total used free shared buffers cached
Mem: 379772 370768 9004 0 4244 59912
-/+ buffers/cache: 306612 73160
Swap: 511992 91400 420592

5.查看swap状态

	cat /proc/swaps  
 	 Filename Type        Size    Used    Priority
    /var/swap.img         file    511992    107988    -1

6.开机加载swap分区
通过修改vi/vim来编辑/etc/fstab,启动时自动加载SWAP!
在该文件末尾中追加

	/var/swap.img               swap                    swap    defaults        0 0

7.清理swap分区
如果不再需要swap,可以清理该分区

	 swapoff /var/swap.img

三、总结

上面两个方式可选择一个来操作。
虽然我给小内存的服务器都加了 Swap 分区,但是好像效果不明显,不知道是不是自己操作的问题,按道理“在系统内存不够时,把一部分硬盘空间虚拟成内存使用”应该能解决我内存不够用的情况,但往往不够用的时候好像还是卡,所以经济条件允许直接升级配置吧。

THE END
点赞0赞赏 分享
共1条
头像
提交
头像

昵称

取消
昵称表情