关于Swap交换分区
1.什么是Swap交换分区
①
官方给出的文档:
Linux内核为了提高读写效率与速度,会将文件在内存中进行缓存,这部分内存就是Cache Memory(缓存内存)。即使你的程序运行结束后,Cache Memory也不会自动释放。这就会导致你在Linux系统中程序频繁读写文件后,你会发现可用物理内存变少。当系统的物理内存不够用的时候,就需要将物理内存中的一部分空间释放出来,以供当前运行的程序使用。那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存到Swap空间中,等到那些程序要运行时,再从Swap分区中恢复保存的数据到内存中。这样,系统总是在物理内存不够时,才进行Swap交换。
②
个人理解
:
如同windos的虚拟内存,就是在硬盘上划出一小部分空间,当成虚拟内存。作用是当实际内存不够用的时候,系统将长时间没有运行的程序拷贝到交换分区中,从而为当前运行的程序腾出足够的内存空间,而被调用到交换分区的程序激活时,再从交换分区中调用出来。
2.交换分区设置多少合适
①甲骨文官方给的参考方案
:
物理内存 | 交换分 |
---|---|
512MB | 1GB |
1GB—2GB | 1.5倍的内存 |
2GB—8GB | 等同于内存 |
超过8GB | 内存的0.75倍 |
②民间野生方案
:
物理内存 | 交换分 |
---|---|
4GB以内 | 两倍的内存 |
4GB-8GB | 等同于内存 |
8GB—64GB | 8GB |
64GB-256GB | 16GB |
3.调整交换分区大小
①查看
[root@localhost /] free -m
total used free shared buff/cache available
Mem: 1980 244 1530 9 204 1583
Swap: 2047 0 2047
②如果没有交换分区,如何创建
dd if=/dev/zero of=/data/swap bs=512 count=8388616 //将zero设备作为输出,写入swap,count写入多少次,这里一共写入4G,如果没有swap就在data下创建一个swap的文件
mkswap /data/swap //设置swap为交换区
swapon /data/swap //启用
echo “/data/swap swap swap defaults 0 0” >> /etc/fstab //开机引导时会自动启动
③释放交换分区分区的内容
[root@localhost data] swapon -s
Filename Type Size Used Priority
/data/swap file 4194304 0 -1
④关闭交换分区
[root@localhost /] swapon -s #先查看
文件名 类型 大小 已用 权限
/dev/dm-1 partition 2097148 0 -2
[root@localhost /] swapoff /dev/dm-1 #后面跟交换分区的绝对路径
⑤调整交换分区的大小
先关闭交换分区,格式化交换分区,然后调整交换分区逻辑卷的大小,然后挂载。
mkswap /dev/dm-1
lvreduce -L 3G dev/dm-1 #设置了一个3GB的逻辑分区,这里自行设置大小。
最后在
vim /etc/fstab
配置下挂载信息保存退出 ,
mount -a
刷新挂载即可。