SWAP的作用
Linux 系统中,swapfile 是一种虚拟内存技术,用于扩展物理内存。当系统的物理内存(RAM)不足时,操作系统会将一些内存页(页面)交换到磁盘上的 swapfile,从而腾出物理内存用于当前需要的任务。这个 swapfile 的空间并不是直接从物理内存中获取的,而是存储在磁盘上的一块区域。
swapfile
获取的内存来源
1. 磁盘上的空间
-
当您创建一个 swapfile,它实际上是一个存在于磁盘上的普通文件,可以位于系统的任何存储设备(如硬盘或 SSD)上。通常,swapfile 存储在根文件系统(
/
)或者其他挂载点中(如/mnt
)。 -
swapfile
并不占用物理内存,而是使用磁盘空间。当系统需要虚拟内存(Swap)时,它会使用这个磁盘空间来存储内存页面。
2. 创建和配置 Swapfile
可以使用 fallocate
或 dd
命令在磁盘上创建一个指定大小的 swapfile,然后通过 mkswap
格式化它,使其可以作为 Swap 使用。之后,系统通过 swapon
启用该 swapfile。
3. swapfile 与物理内存的关系
-
物理内存:即实际安装的 RAM,它用于系统运行时存储活跃数据和进程。
-
swapfile:当物理内存不足时,内核会将部分不活跃的数据或进程页面移到 swapfile 中。这相当于将内存中的部分内容 "换出" 到磁盘。
因此,swapfile 的内存并不来源于物理内存,而是存储在磁盘的文件中,作为一种辅助内存扩展的机制。
如何创建和使用 swapfile
假设要创建一个大小为 4GB 的 swapfile,可以按以下步骤操作:
1. 创建一个 swapfile(例如,大小为 4GB)
sudo fallocate -l 4G /swapfile
或者使用 dd
命令:
sudo dd if=/dev/zero of=/swapfile bs=1M count=4096
2. 设置正确的权限
sudo chmod 600 /swapfile
3. 将文件格式化为 swap
sudo mkswap /swapfile
4. 启用 swapfile
sudo swapon /swapfile
5. 确认 swap 是否生效
swapon --show
或者通过 free
命令查看:
free -h
swapfile
的作用
-
缓解内存不足:当系统的物理内存不足时,Swap 提供了额外的空间。系统可以将不常使用的数据移到 Swap 文件,从而释放物理内存供新的进程使用。
-
提升稳定性:在内存严重不足的情况下,Swap 可以避免系统崩溃,而是通过将一些数据交换到磁盘来确保系统继续运行。
-
性能开销:Swap 文件虽然可以提供额外的内存空间,但由于硬盘的读写速度远低于 RAM,频繁使用 Swap 会导致系统性能显著下降。因此,Swap 主要用于极端内存不足的情况。
总结
-
swapfile
并不是从物理内存中获取内存,而是使用磁盘上的空间来扩展虚拟内存。 -
它的作用是当物理内存不足时,提供额外的空间存储不活跃的数据。
-
虽然可以增加系统的内存容量,但频繁使用
swapfile
会影响系统性能,因此应尽量避免频繁依赖 Swap。
在虚拟机中查看swap的位置
嵌入式设备中查看