swap
分区是Linux
中特殊的一种存储,他在安装系统时被自动创建。
用于当内存不够时,操作系统会取出内存中不活跃或不常用的一部分放到swap
分区中,使内存空闲出一部分空间用于执行其他程序。相当于临时充当一部分内存,当操作系统想要访问swap
空间上的的数据时,swap
会把数据放回内存中供操作系统使用。
类似windows
中的虚拟内存。每个操作系统都有这种内存调度处理,当内存不够用,还想跑点东西,可以临时选择增加swap
空间。以达到实际使用内存
超过物理内存
。由于swap
的读取速度远不如内存,最好的办法还是加物理内存
。
速度比较:物理内存 > swap分区 > swap文件。
由于swap
分区需要一个新的磁盘,当你的磁盘已经装了不少内容,不方便重新规划的话,也只好使用swap文件了。本文使用swap文件方式。
基于Cent OS 7.6
使用swapon -s
命令查看系统中当前swap
信息:
swapon -s
Filename Type Size Used Priority
/swapfile file 1048572 199668 -2
partition
为分区类型,file
为文件类型若查不到 swap 信息,使用free -h
命令,查看内存使用情况:
free -h
total used free shared buff/cache available
Mem: 487M 65M 289M 44K 132M 398M
Swap: 1.0G 259M 764M
创建swap文件
, fallocate
命令可以为文件预分配物理空间,和touch、vim的区别就是可瞬间创建超大的文件。快速创建的原因是通过分配块并将它们标记为未初始化,无需对数据块进行IO,可以快速完成预分配。当使用时再使用物理内存。-l
后加大小,可以是k、m、g。再后面是保存位置和名称。
# 创建一个1g文件swapfile保存到/
sudo fallocate -l 1G /swapfile
修改权限,仅允许文件所有者进行读写操作:
sudo chmod 600 /swapfile
将这个文件设为 Linux 交换区:
sudo mkswap /swapfile
激活交换区:
sudo swapon /swapfile
修改/etc/fstab
,实现系统重启自动加载swap文件:
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
至此完成swap文件增加。使用free -h
查看 swap 使用情况:
free -h
total used free shared buff/cache available
Mem: 487M 65M 289M 44K 132M 398M
Swap: 1.0G 259M 764M
停止所有swap:
sudo swapoff -a
# 查看内存使用情况,可以看到 Swap 信息都变成0,说明操作成功了
free -h
total used free shared buff/cache available
Mem: 487M 261M 92M 484K 134M 201M
Swap: 0 0 0
Linux · 2020年9月21日 · 被浏览 - 次