在CentOS7上添加SWAP内存
一些内存较小的机器在运行很多事务时都无法分配到足够的内存,添加SWAP内存来解决RAM不足的问题。
检查系统SWAP信息
每个人情况不同,加SWAP之前看看之前是否已经配置过了SWAP
1 | swapon -s |
如果你发现这行命令运行之后没有任何反应,毫无疑问,没有设置过SWAP
我们也可以用free
命令查看
1 | free -m |
运行结果(在阿里云上运行的,2G内存,因为前言里的垃圾VPS已经配置过了)
1 | total used free shared buff/cache available |
可看出还未配置SWAP
检查可用空间
检查磁盘空间命令的短参数-h
很有意思,意思是让显示的信息更”Human”,更容易被人类阅读
1 | df -h |
1 | Filesystem Size Used Avail Use% Mounted on |
可用看到存储分区/dev/vda1
上还有很多富余空间(每个人情况可能不同)
创建SWAP文件
在根目录(可选你喜欢的目录)创建一个4GB的SWAP文件(报复式心理2333)
1 | fallocate -l 4G /swapfile |
注意,使用 fallocate 在某些文件系统下后续操作会报错,那样的话请使用以下命令生产SWAP文件
1 | dd if=/dev/zero of=/myswap count=4096 bs=1MiB |
可用ls
检查文件大小
1 | ls -lh /swapfile |
SWAP文件创建完毕
启用SWAP文件
首先我们确保SWAP文件只有root用户可读
1 | chmod 600 /swapfile |
再用ls
检查
1 | ls -lh /swapfile |
显示如下即可
1 | -rw------- 1 root root 4.0G APR 05 11:00 /swapfile |
然后告知系统使用我们创建的SWAP文件进行SWAP
1 | mkswap /swapfile |
现在,这个SWAP文件就可以进行SWAP了,输入一下命令开启SWAP
1 | swapon /swapfile |
检查SWAP是否已经生效
1 | swapon -s |
使SWAP永久生效
虽然现在已经启用,重启之后系统不会自动SWAP
编辑fstab
文件
1 | nano /etc/fstab |
在文件末尾加上
1 | /swapfile swap swap sw 0 0 |
保存退出即可
到此,SWAP配置成功
Swappiness
该参数决定了系统将数据从内存交换到swap空间的频率,数值设置在0到100之间,代表系统将数据从内存交换到swap空间的力度
查看当前Swappiness
1 | cat /proc/sys/vm/swappiness |
CentOS7默认值为
1 | 30 |
要永久修改该数值,编辑系统设置文件
1 | nano /etc/sysctl.conf |
在文末添加
1 | vm.swappiness = 数值 |
到此,SWAP设置全部完成