Linux SWAP交换分区应该设置多大?

Linux SWAP交换分区,就是我们课本说讲过的虚拟内存的概念。

当Linux系统的物理内存不够用的时候,就需要将物理内存中的一部分空间释放出来,以供当前运行的程序使用。那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存到Swap空间中,等到那些程序要运行时,再从Swap中恢复保存的数据到内存中。

以前几乎所有Linux 系统管理的书上都推荐设置交换分区大小为内存的2倍。这些建议到了现在就是那么适用了,现在的服务器动不动就是 16GB/32GB甚至256GB 内存,难道相应的交换分区也要扩大到 32GB/64GB/512GB?

那么swap分区到底设置成多大才最优?

首先看下Redhat官方的文档中关于swap分区大小设置的建议

物理内存 建议的交换空间大小 如果开启休眠功能建议的交换空间大小
⩽ 2GB 内存的2倍 内存的3倍
> 2GB – 8GB 等于内存大小 内存的2倍
> 8GB – 64GB 至少4G 内存的1.5倍
> 64GB 至少4G 不建议使用休眠

因此,一般来说可以按照如下规则设置swap大小:

  • 4G以内的物理内存,SWAP 设置为内存的2倍,不超过4G。

  • 4-8G的物理内存,SWAP 等于内存大小。

  • 8-64G 的物理内存,SWAP 设置为8G。

  • 64-256G物理内存,SWAP 设置为16G。

实际上,系统中交换分区的大小并不取决于物理内存的量,而是取决于系统中内存的负荷,所以在安装系统时要根据具体的业务来设置SWAP的值

系统在什么情况下才会使用SWAP?

实际上,并不是等所有的物理内存都消耗完毕之后,才去使用swap的空间,什么时候使用是由swappiness 参数值控制。

cat /proc/sys/vm/swappiness

30

该值在centos 7上默认值是30,在Centos 6上是60,可以看出新版本的linux已经在根据内存大小趋势做出一定的调整。

swappiness=0的时候表示最大限度使用物理内存,然后才是 swap空间,

swappiness=100的时候表示积极的使用swap分区,并且把内存上的数据及时的搬运到swap空间里面。

现在服务器的内存动不动就是上百G,所以我们可以把这个参数值设置的低一些,让操作系统尽可能的使用物理内存,降低系统对swap的使用,从而提高系统的性能。特别是对于性能要求较高的数据库服务器,要求全部使用内存。

如何查看系统的SWAP分区?

使用free命令即可。

如何修改swappiness参数?

临时性修改:

sysctl vm.swappiness=10

vm.swappiness = 10

cat /proc/sys/vm/swappiness

10

这里我们的修改已经生效,但是如果我们重启了系统,又会变成系统默认值.

永久修改:

在/etc/sysctl.conf 文件里添加如下参数:

vm.swappiness=10

然后重启系统。

(0)

相关推荐

  • Linux学习15-gitlab访问慢502问题优化

    前言 浏览器访问gitlab的web页面,发现非常慢,并且很容易出现502问题.其中一个原因就是8080端口被tomcat占用,前面一篇已经更换了端口,但还是很慢. 后来搜了下,原因是gitlab占用 ...

  • 永久关闭linux swap

    一般来说,Linux的虚拟内存会根据系统负载自动调整.内存页(page)swap到磁盘会显著的影响Kafka的性能,并且Kafka重度使用page cache,如果VM系统swap到磁盘,那说明没有足 ...

  • 在众多Linux命令中,交换分区相关的都有哪些?

    Linux命令是运维管理工作中经常会用到的,是每个Linux运维人员都必须要掌握的.近几年Linux市场对于人才的需求逐渐增加,学习Linux运维技术的人们也越来越多.Linux命令的学习必不可少,在 ...

  • Linux如何进行分区?Linux入门

    Linux是当下非常热门的技术,现在越来越多的企业都开始使用Linux,因此很多人都想要转行学习Linux技术.当然在学习Linux的时候,大家都会遇到各种各样的问题,甚至有不少人疑惑Linux系统对 ...

  • 华为交换机会用这九大命令,项目事半功倍

    前面我们前多次发布了关于华为交换机配置,相信大家已经对交换机的基础配置有一定了解了,有部分朋友留言问到关于交换机的配置状态如何查看?怎么查看自己配置了哪些端口与vlan?这个内容也是非常重要,查询交换 ...

  • 启动模式为uefi时BIOS设置方法以及分区类型设置方法

    启动模式为uefi时BIOS设置方法以及分区类型设置方法 ①进入BIOS,按→方向键切换到Security选择Secure Boot回车设置成Disabled ②转到Exit,把OS Optimize ...

  • Linux挂载磁盘分区

    Linux系统一般都会有未挂载的磁盘,如果我们想使用这些为挂载的磁盘就需要挂载到指定目录才能使用. 一.有多个磁盘,将未分区的磁盘挂载 1.进入root用户 su – 2.查看已挂载磁盘的使用情况: ...

  • 干货 | 罐区火灾隔离阀设置九大热点难点问题解读

    阅读前思考:什么场景下需要考虑防火措施?防火措施有哪几种,应该如何选择?阀门类型有哪几种,针对不同阀门类型,如何考虑什么情况下需要防火以及如何选择合适的防火型式?什么场景下需要考虑电缆防火,有哪些具体 ...

  • Linux 新建扩展分区

    # fdisk -l 要进行新建扩展分区的磁盘是 /dev/sda# fdisk /dev/sda# p 打印分区表 此时磁盘已经有了3个分区,如果要再弄2个分区就不行,这个时候我们进行新建扩展分区# ...

  • win7系统共享硬盘分区的设置方法

    很多小伙伴不知道win7如何共享硬盘分区,共享硬盘分区可以让我们很好操作.其实win7共享硬盘分区的方法很简单,今天小编就来跟大家分享win7共享硬盘分区怎么操作,话不多说,感兴趣的小伙伴就跟小编一起 ...