简介
Linux 将物理内存分为内存段,叫做页面。交换是指内存页面被复制到预先设定好的硬盘空间(叫做交换空间)的过程,目的是释放这份内存页面。物理内存和交换空间的总大小是可用的虚拟内存的总量。
使用swap扩展您的虚拟内存是否有好处取决与您的物理内存。如果物理内存不足以支撑您日常使用全部的程序的话(体现在日常使用时内存满了导致的卡顿,死机),使用swap也许会对您有些帮助。启用交换的最大缺点是性能较低.
查看交换空间状态
swapon --show
显示物理内存以及交换使用情况
free -h
交换分区
交换分区可以用大多数 GNU/Linux (例如 fdisk
, cfdisk
) 创建。交换分区被分配为类型 82
。尽管可以使用任何分区类型作为交换分区,但是在大多数情况下,建议使用 82
,因为 会自动检测并挂载它(见下文)。
启用一个设备作为交换分区:
swapon /dev/sdxy
启动时自动启用交换分区,添加一个条目到 /etc/fstab
,参考文章
UUID=device_UUID none swap defaults 0 0
命令关闭交换分区
swapoff /dev/sdxy
交换文件
相比于使用一个磁盘分区作为交换空间,使用交换文件可以更方便地随时调整大小或者移除。当磁盘空间有限(例如常规大小的SSD)时,使用交换文件更加理想
使用 去创建一个由你自己指定大小的交换文件。例如,创建一个 512 MiB 的交换文件
dd if=/dev/zero of=/swapfile bs=1M count=512 status=progress
为交换文件设置权限(交换文件全局可读是一个巨大的本地漏洞)
chmod 600 /swapfile
创建正确大小的文件后,将其格式化用来作为交换文件
mkswap /swapfile
启用交换文件
swapon /swapfile
最后,编辑 /etc/fstab
,在为交换文件添加一个条目
/swapfile none swap defaults 0 0
注意:交换文件必须由文件系统上的位置指定,而不是由UUID或标签指定。
停用交换文件
swapoff /swapfile
Comments NOTHING