有经验的系统管理员和DBA,往往会给系统建设一个适中大小的SWAP大小,但实际生产系统中,也经常发现有一些,因为SWAP设置过小的原因,而导致物理内存、SWAP全部
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 Memory Minimum Requirements
Ensure that your system meets the following memory requirements:
Minimum: 1 GB of RAM
Recommended: 2 GB of RAM or more
Table
4-3 describes the relationship between the installed RAM and the configured swap space recommendation:
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大小。
本文作者:黎俊杰(网名:踩点),从事”系统架构、操作系统、存储设备、数据库、中间件、应用程序“六个层面系统性的性能优化工作