CentOS7下swap分区的添加/删除/配置
Table of Contents
swap分区除了在安装系统的时候可以创建,在安装系统后还可以在系统里添加,比如VPS不够内存,想暂时增加就可以用这种办法。
添加前:
root > free -h
total used free shared buff/cache available
Mem: 482M 248M 12M 25M 221M 172M
Swap: 511M 150M 361M
添加后:
root > free -h
total used free shared buff/cache available
Mem: 482M 251M 14M 42M 217M 151M
Swap: 1.5G 242M 1.2G
添加swap分区
注意,这里说的添加swap分区,是在原有交换分区不够的情况下,自己再添加,而不是修改原有的,因为对于VPS来说,你在VPS里面是无法动原来的磁盘分区的。
1、创建交换文件
dd if=/dev/zero of=/var/swapfile bs=1024 count=2048k
dd if=/dev/zero of=/var/swapfile bs=1M count=2048
dd: disk dump,dump查单词可能有“倾倒”的意思,这里“disk dump”的意思是“磁盘转储”;
if: input file,输入文件,其中/dev/zero
是Linux的一种特殊字符设备(输入设备),可以用来创建一个指定长度用于初始化的空文件,如临时交换文件,该设备无穷尽地提供0,可以提供任何你需要的数目;
of: output file,输出文件;
bs: block size,单位数据块大小(同时读入/输出的块字节大小),可以用K/M这些单位(或KB,MB,但一定要大写,小写会报错),不使用单位则默认单位是“字节(Byte)”,很多人把它设置为1MB;
count: 数据块的数量,也可以用单位,创建的交换文件空间大小=bs×count
,也就是你每块多大×一共多少块。所以本例创建的交换文件空间大小为:1024(即1k)×2048k(即2048×1024)=1024×2097152=2,147,483,648=2G,1Mx2048也是等于2G。
2、格式化交换文件
mkswap /var/swapfile
3、挂载新交换分区
swapon /var/swapfile
执行swapon命令后后可能会提示:不安全的权限 0644,建议使用 0600”类似提示,其实已经激活了,你可以用free -h
或swapon -s
查看,现在的swap分区大小,其实已经等于原分区加上你现在创建的分区大小了。
至于权限提示,你可以忽略,也可以听从系统的建议修改下权限(当然我一般都会修改):
chmod -R 0600 /var/swapfile
4、设置开机自动挂载分区
echo "/var/swapfile swap swap defaults 0 0" >> /etc/fstab
5、配置交换分区
我们可以通过修改swappiness值(0-100)来决定系统对swap分区的依赖程度,越高则越倾向于使用swap分区。
越依赖swap会造成物理内存远未使用完,就使用swap分区,我们知道swap分区性能远不如物理内存(毕竟是硬盘虚拟出来的),这反而降低了系统性能,当然如果是固态硬盘,可以适当增加对swap的依赖程度,毕竟固态硬盘的速度比普通的HDD快的多了。
如果希望在物理内存即将满荷时再使用swap,swappiness值一般为10-60为宜,固态硬盘可以偏高些。
查看当前的swappiness数值:
cat /proc/sys/vm/swappiness
设置swappiness值,这里以50为例:
sysctl vm.swappiness=50
按照Linux的国际惯例,要让配置永久生效,必定要把配置写到配置文件中,这里我用echo直接添加到/etc/sysctl.conf
文件的最后,你想用vi/vim
编辑再添加也是一样的:
echo "vm.swappiness = 50" >> /etc/sysctl.conf
删除swap分区
1、停止正在使用swap分区
swapoff /var/swapfile
2、删除swap分区文件
rm -rf /var/swapfile
3、去掉启动自动挂载
删除或注释掉我们之前在fstab文件里追加的开机自动挂载配置内容:
/var/swapfile swap swap defaults 0 0