swap是什么
swap是磁盘上的一块区域,可以使一个磁盘分区,也可以是一个文件,也可能是一个两种的组合。当物理内存资源紧张的时候,操作系统(Linux)会将一些不常访问的数据放到swap里。为其他常使用的进程提供更多的物理内存。当系统要访问swap里的数据的时候,操作系统再将swap上的数据加载到内存中。
上述的过程就是swap in和swap out。
操作系统的swap的设计确实可以提高内存的利用率,但是由于磁盘的IO速度和内存的IO速度相差很远,因此如果出现对swap频繁的IO,那么系统性能就会有致命的影响。
swap的大小设置
swap的大小设置(参考redhat官方建议):
物理内存 | 建议的交换空间大小 | 如果开启休眠功能建议的交换空间大小 |
---|---|---|
? 2GB | 2 倍内存大小 | 3倍内存大小 |
2GB – 8GB | 和内存大小一致 | 2 倍内存大小 |
8GB – 64GB | 至少4G | 1.5倍内存大小 |
> 64GB | 至少4G | 不建议设置休眠 |
swap的相关工具
- 查看swap配置
单独运行swapon
启动swap,通过swapoff
关闭swap,通过swapon -s查看swap的一些信息。其中返回值中的Size表示swap的大小,单位是k。
- 查看使用
free -m
是查看内的使用情况的命令,兆为单位。
total used free shared buffers cached
Mem: 128 119 8 0 1 22
-/+ buffers/cache: 95 32
swap: 255 0 255
其中:
第1行Mem数据:
total 内存总数: 128
used 已经使用的内存数: 119
free 空闲的内存数: 8
shared 当前已经废弃不用,总是0
buffers Buffer Cache内存数: 1
cached Page Cache内存数: 22
第2行-/+ buffers/cache:
-buffers/cache 的内存数:95 (等于第1行的 used - buffers - cached)
+buffers/cache 的内存数: 32 (等于第1行的 free + buffers + cached)
第3行就是swap,表示swap共有255,全部空闲。复制代码