目录
什么是swap
swap 是 Linux 操作系统中一种虚拟内存管理技术。当系统内存不足时,操作系统会将某些不常用的内存页面写入到 swap 空间中。这样可以释放物理内存供其他进程使用。后续如果需要访问这些被交换出去的数据,操作系统会将其从 swap 空间读回到物理内存。
swap的作用
内存扩展:在物理内存(RAM)耗尽时,swap 提供了一种扩展内存的方法
提高系统稳定性:即使物理内存不足,系统也可以继续运行而不会崩溃
swap与RAM的区别
swap的类型
swap 可以是一个专用的交换分区(swap partition)或一个交换文件(swap file)
swap 分区
在磁盘上创建的一个专用分区,只用于 swap。这种方式通常性能较好,因为分区的连续性和固定大小可以提高访问速度
swap 文件
在现有的文件系统上创建一个文件,并将其用作 swap。这种方式灵活性更高,因为可以随时调整 swap 大小而不需要重新分区
配置Swap
配置Swap分区
-
创建swap分区
sudo fdisk /dev/sdX # 用合适的设备替换 sdX
-
设置分区类型为 swap
sudo fdisk /dev/sdX
Command (m for help): n
Command (m for help): t
Hex code (type L to list all codes): 82
Command (m for help): w
-
格式化swap 分区
sudo mkswap /dev/sdX
-
启用 swap 分区
sudo swapon /dev/sdX
-
添加到 /etc/fstab 以开机自动挂载
sudo echo '/dev/sdX1 none swap sw 0 0' | sudo tee -a /etc/fstab
配置swap文件
-
创建 swap 文件
sudo fallocate -l 4G /swapfile # 创建一个4GB的swap文件
-
设置swap文件权限
sudo chmod 600 /swapfile
-
格式化swap文件
sudo mkswap /swapfile
-
启用 swap 文件
sudo swapon /swapfile
-
添加到 /etc/fstab以开机自动挂载
echo '/dev/sdX1 none swap sw 0 0' | sudo tee -a /etc/fstab
查看和管理swap
-
查看 swap 状态
swapon --show
-
禁用swap
sudo swapoff -a # 禁用所有swap
调整swap使用策略
swappiness 参数控制内核将数据移出物理内存到 swap 的倾向。取值范围是 0 到 100,值越大,内核越倾向于使用 swap
-
查看当前swappiness值
cat /proc/sys/vm/swappiness
-
临时调整swappiness
sudo sysctl vm.swappiness=10 # 将 swappiness 设置为10
-
永久调整swappiness
在 /etc/sysctl.conf 中添加或修改
vm.swappiness=10
总结
swap 是一种用于扩展系统内存、提高系统稳定性的重要机制。虽然 swap 使用磁盘空间,速度较慢,但在内存资源紧张时,能有效防止系统崩溃。通过合理配置和使用 swap,可以优化系统性能和稳定性
相关资料
https://www.geeksforgeeks.org/how-to-add-swap-space-on-ubuntu-20-04/
---the end---
**关注我的微信公众号,获取更多精彩内容!**