Linux-Swap

维基百科的解释,Wikipedia - Unix and Unix-like systems:
在Unix及类Unix系统中,当内存(RAM)占满时,系统把磁盘空间拿去代替内存,有些系统会在硬盘上划一块专门的区块作为页面文件(代替内存空间)交换文件用,称为交换分区(swap partitions),有些系统还可以把这个区块用文件的形式出现。用一整块磁盘作swap分区也是很常见的。

Linux.com的解释,All about Linux swap space:
Linux 将物理内存分为内存段,叫做页面。交换是指内存页面被复制到预先设定好的硬盘空间(叫做交换空间)的过程,目的是释放这份内存页面。物理内存和交换空间的总大小是可用的虚拟内存的总量。

ArchWiki的解释:
交换空间可以是磁盘的一个分区,也可以是一个文件。用户可以在安装时或安装后的任何时候创建交换空间。交换空间有两种用途:第一,是将虚拟内存扩大到超过已安装的物理内存(RAM)的容量;第二,是用于suspend-to-disk 支持。使用swap扩展您的虚拟内存是否有好处取决与您的物理内存。如果物理内存不足以支撑您日常使用全部的程序的话(体现在日常使用时内存满了导致的卡顿,死机),使用swap也许会对您有些帮助。这样可以避免out of memory conditions,Linux内核OOM Killer机制将尝试通过杀进程的方式来自动释放内存。如果您想让虚拟内存足够使用,请添加相应的差值(或更多)作为交换空间。启用交换的最大缺点是性能较低,因此,启用swap是个人喜好问题:当物理内存用完时,有些人更喜欢杀死程序而不是启用交换,而另一些人更喜欢启用交换和较慢的系统。

查询Swap

检查交换空间的状态用swapon --show,检查物理内存和交换空间情况用free -h,我4块8G内存总共32G,用的4G Swap磁盘空间一直占满,显然不够。

分配空间

即使是不致命的Swap分区也要合理分配。

红帽Linux

根据红帽文档Red Hat Enterprise Linux Recommended System Swap Space:
红帽文档推荐Swap大小

总结就是:

系统内存大小 推荐Swap大小 带休眠推荐Swap大小
⩽ 2 GB 2倍内存大小 3倍内存大小
> 2 GB – 8 GB 同等内存大小 2倍内存大小
> 8 GB – 64 GB 最少4 GB 1.5倍内存大小
> 64 GB 最少4 GB 不建议休眠

Oracle数据库

对于数据库安装条件,Oracle有推荐

Oracle数据库安装推荐Swap大小

总结就是:

系统内存大小 推荐Swap大小
1 GB - 2 GB 1.5倍内存大小
2 GB - 16 GB 同等内存大小
> 16 GB 16 GB
作者

celiae

发布于

2025-02-16

更新于

2025-02-16

许可协议

CC BY-NC-SA 4.0