swap指的是将最近不常使用的内存移动到下一级存储里(硬盘),在需要的时候再载入到主内存中。
swap空间一般指的是磁盘上预先配置的一个分区,也可以是文件,用于将内存中的数据交换到磁盘上。物理内存和swap空间之和就是我们可用的虚拟内存的大小。当内存不够或应用程序消耗了太多的内存,操作系统就会把不需要立即使用的数据传输代磁盘,以释放内存空间,如果需要了,再从磁盘上复制回内存,这样一个过程也称为交换(swap out / swap in)
通过这样一个交换的动作,增加了实际可用的内存,提高整个操作系统的吞吐能力,但是数据的交换如果太频繁,就会大大增加磁盘的延时时间,可能会导致严重的性能问题
一般来说,数据库负载需要尽量避免使用到swap,可以使用free,sar,vmstat查看swap的使用统计信息
linux系统swap分区大小的建议
如果MEM<2GB,那么SWAP=MEM2,否则SWAP=MEM+2GB
对于内存非常大的系统,如32GB,64GB,我们可以使用0.5内存大小