1、swap的作用

        系统管理和DBA都知道,在Linux和UNIX系统上都有一个SWAP分区,该分区,例似于于Windows系统上的虚拟内存。

        当系统的物理内存不够用的时候,就需要将物理内存中的一部分空间释放出来,临时转移到SWAP上,供当前运行的程序提供物理内存空间,当程序需要再访问被转移到了SWAP空间上的数据时,再从SWAP中恢复到物理内存中。从此工作原理不难看出来,SWAP要有,但是尽量不要使用,使用了就会发生内存交换,必然影响系统性能。

2、swap设置问题

        有经验的系统管理员和DBA,往往会给系统建设一个适中大小的SWAP大小,但实际生产系统中,也经常发现有一些,因为SWAP设置过小的原因,而导致物理内存、SWAP全部耗尽,导致DOWN机的情况;也有发现一因为SWAP设置太大太大而浪费必要的存储空间的情况,SWAP到底该设置多大,可以参考一下ORACLE官方的建议。

3、ORACLE官方建议swap设置标准

        对于运行ORACLE数据库的操作系统,ORACLE官方是有设置大小建议的,在此以从ORACLE 12C R1官方文档中提取的建议大小为例:

4.3.4 Server
Ensure that your system meets the following memory requirements:
Minimum: 1 GB of RAM
Recommended: 2 GB of RAM or more
Table 4-3
Table 4-3 Swap Space Requirement for Linux


RAM

Swap Space

Between 1 GB and 2 GB

1.5 times the size of the RAM

Between 2 GB and 16 GB

Equal to the size of the RAM

More than 16 GB

16 GB

 (1)ORACLE官方要求最小1GB的RAM,建议2GB或更大

 (2)SWAP与RAM的大小配置关系

     1)、RAM为1-2GB时,SWAP大小建议为RAM大小的1.5倍

     2)、RAM为2-16GB时,SWAP大小建议与RAM大小相等

     3)、RAM大于16GB时,SWAP大小建议为16GB

4、大内存环境下SWAP大小配置建议

        由于内存价格的快速下降,当前生产系统服务器的内存256GB、512GB已不足为奇,笔者建议16-64GB物理内存情况下,SWAP与物理内存“相当”的大小,大于64GB的大内存情况下,建议一般配置为物理内存大小的一半或相当,具体大小可以根据业务特性依经验做判断。在生产过程中持续观察SWAP使用情况可以适当调整SWAP大小。

 

 

本文作者:黎俊杰(网名:踩点),从事”系统架构、操作系统、存储设备、数据库、中间件、应用程序“六个层面系统性的性能优化工作

欢迎加入 系统性能优化专业群,共同探讨性能优化技术。