swap交换分区是系统ram不足的时候,使用系统磁盘作为ram的补充,也叫虚拟内存。因使用的是系统磁盘,在性能上与ram上有所差异,当配置过多的swap空间时,会掩盖内存泄漏问题以及造成存储空间浪费情况;一般情况下,swap空间官方推荐如下
系统中ram容量 | 推荐swap空间 |
低于2GB | RAM量的2倍 |
2-8GB | 等于RAM量 |
8-64GB | 4GB到ram容量的0.5倍 |
超过64GB | 独立负载(至少4GB) |
ram使用详情介绍
buff(buffer cache):缓冲区,即写如磁盘时,先保存到磁盘缓冲区(buffer),然后再写入到磁盘。
cache(page cache):缓存区,即读磁盘时,数据从磁盘读出后,暂留在缓冲区(cache),为后续程序的使用做准备。
free:free 是真正尚未被使用的物理内存数量
available:还可以被应用程序使用的物理内存大小,数值上等于free+buff+cache;当free不足时,内核会自动回收buff和cache内存来满足应用程序的请求;
buff/cache占满如何释放?(谨慎操作,可能会造成程序异常)
交换分区实现过程
1、创建交换分区
使用文件创建swap分区
使用磁盘创建swap分区
2、使用mkswap写入特殊签名
3、在/etc/fstab文件中添加适当条目
4、使用swapon -a激活交换空间
启用swap分区
swapon [option]...[device]
选项:
-a:激活所有的交换分区
-s 显示swap分区 通cat /proc/swaps
-p priority:指定优先级,也可以在/etc/fstab 在第4列指定:pri=value
swap优先级:0-32767,值越大,优先级越高,如用户未指定,则从-1开始,逐一递减。
禁用swapoff 分区
swapoff -a 禁用所有swap
swap使用策略
/proc/sys/vm/swappiness的值决定当内存剩余多少时,开始使用swap空间;默认值为30;可以设置为0,0代表不使用swap。