在CentOS上添加swap虚拟内存并设置优先级

现如今很多云服务器都会自己配置虚拟内存,当然也有很多没有配置虚拟内存的,虚拟内存可以让我们的低配服务器使用更多的内存,可以减少很多硬件成本,比如我们运行很多服务的时候,内存常常会满,当配置了虚拟内存,那么会将一些不频繁的数据放到虚拟内存以释放硬件内存的空间达到节省空间的目的,下面一起来设置下CentOS的虚拟内存设置。

什么是虚拟内存?

虚拟内存是计算机系统内存管理的一种技术。它使得应用程序认为它拥有连续可用的内存(一个连续完整的地址空间),而实际上物理内存通常被分隔成多个内存碎片,还有部分暂时存储在外部磁盘存储器上,在需要时进行数据交换。与没有使用虚拟内存技术的系统相比,使用这种技术使得大型程序的编写变得更容易,对真正的物理内存(例如RAM的使用也更有效率。此外,虚拟内存技术可以使多个进程共享同一个运行库,并通过分割不同进程的内存空间来提高系统的安全性。

设置swap虚拟内存

CentOS设置swap虚拟内存

设置空间大小

分区大小具体看业务使用,如不清除业务可参考一下规则:
4G以内的物理内存,SWAP设置为内存的2倍。
4-8G的物理内存,SWAP等于内存大小。
8-64G的物理内存,SWAP设置为8G。
64-256G物理内存,SWAP设置为16G。

新增分区文件

#if=文件名:表示指定源文件
#of=文件名:表示指定目的文件,可以自己去设定目标文件路径。
#bs=xx:同时设置读入/写出的“块”大小,单位字节
#count=xx:表示拷贝多少个“块”,一般只改这个
#bs * count 为拷贝的文件大小,即swap分区大小
dd if=/dev/zero of=/swapfile bs=1024 count=4096000

image-20221201111932058

分区文件格式化并转换为swap分区

mkswap /swapfile

挂载激活分区

swapon /swapfile

#查看是否激活
free -h

image-20221201111954279

设置分区权限

chmod 600 /swapfile

开机自动挂载

echo  "/swapfile   swap  swap  defaults  0  0" >>  /etc/fstab

如需卸载分区:swapoff /swapfile 删除分区文件:rm -rf /swapfile

更改Swap配置(设置优先级)

swappiness值(0-100),系统对swap分区的依赖程度,越高则越倾向于使用swap分区。
当然,高度依赖swap会造成物理内存远未使用完,就使用swap分区,我们知道swap分区性能远不如物理内存,这反而降低了系统性能,违背了我们创建swap分区的初衷。
我们希望在物理内存即将满荷时再使用swap,这就决定了swappiness值一般为10-60为宜,当然固态硬盘可以偏高些。

查看当前的swappiness数值:

cat   /proc/sys/vm/swappiness 

修改swappiness值,这里以60为例。

sysctl vm.swappiness=60 

若希望vm.swappiness=60永久生效,则需要修改sysctl配置文件,直接echo追加配置内容,重启系统后即可生效:

echo "vm.swappiness = 60"  >>  /etc/sysctl.conf
© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容