一键给VPS添加虚拟内存swap,以及如何优化swap性能

一键给VPS添加虚拟内存swap
注意:VPS 的内存如果过小(<2G),建议设置一下SWAP,一般为内存的 1-1.5 倍即可,可以让系统运行更流畅!

设置 SWAP 可以用脚本:

wget -O box.sh https://raw.githubusercontent.com/BlueSkyXN/SKY-BOX/main/box.sh && chmod +x box.sh && clear && ./box.sh

怎么配置swap可以让它的性能更好呢?

  • 尽量使用swap分区,相对于swap文件来说,分区肯定是连续的物理磁盘空间,而swap文件有可能不是
  • 将swap分区和系统所在的分区放在不同的磁盘上,这样就不会和系统盘抢同一个磁盘的I/O带宽
  • 如果有多块磁盘的话,可以在每个盘上创建一个swap分区,并且将它们的优先级设置的一样,这样内核就会平均的访问这些swap分区,性能相当于原来的N倍(这里N是磁盘的数量)

不过话又说回来了,如果频繁的访问swap的话,怎么优化swap都没用,跟内存比还是低几个数量级,性能还是下降的厉害,如果不频繁访问swap的话,优化swap又有啥意义呢?所以其实优化swap性能的实际意义不大,这里了解一下就好。

配置swappiness

有时我们桌面环境确实配置了比较充裕的内存,并且也配置了swap空间,这个时候就希望尽量减少swap空间的使用,避免对系统性能造成影响,Linux早就帮我们考虑到这种情况了,在2.6内核中,增加了一个叫做swappiness的参数,用于配置需要将内存中不常用的数据移到swap中去的紧迫程度。这个参数的取值范围是0~100,0告诉内核尽可能的不要将内存数据移到swap中,也即只有在迫不得已的情况下才这么做,而100告诉内核只要有可能,尽量的将内存中不常访问的数据移到swap中。

Ubuntu的desktop和server的默认配置都是60(可能会随着版本变化),对于桌面环境来说,界面的响应速度直接关系到系统的流畅程度,如果内存比较充裕的话,可以将这个值设置的小一点,这样就尽可能的把数据留在内存中,从而唤醒后台界面程序会更快一些,Ubuntu desktop建议将该值设置为10,当然大家可以根据swap空间的实际使用情况,任意调整这个参数,直到自己满意的水平为止。对于服务器来说,主要性能衡量标准是整体的处理能力,而不是具体某一次的响应速度,能把更多的内存用来做I/O cache可能效果更好,所以Ubuntu server建议保持60的默认值。

  • 查看当前系统中swappiness的值

cat /proc/sys/vm/swappiness

  • 修改当前系统中swappiness的值

sudo sysctl vm.swappiness=10

vm.swappiness = 10 

cat /proc/sys/vm/swappiness 10 

上面通过sysctl修改的swappiness值在系统重启后会失效,要想重启后继续生效,需要修改配置文件/etc/sysctl.conf,将下面这行修改成10,如果文件中找不到这行的话,在文件末位加上这行就可以了

vm.swappiness=10 

THE END
分享
一键给VPS添加虚拟内存swap,以及如何优化swap性能
一键给VPS添加虚拟内存swap 注意:VPS 的内存如果过小(<2G),建议设置一下SWAP,一般为内存的 1-1.5 倍即可,可以让系统运行更流畅! 设置 SWAP 可以用脚本……
<<上一篇
下一篇>>