Linux 交换分区详解
一、什么是交换分区?
Linux 的交换分区(swap),或者叫内存置换空间(swap space),是磁盘上的一块区域,可以是一个分区,也可以是一个文件,或者是它们的组合,交换分区的作用是当系统物理内存吃紧时,Linux 会将内存中不常访问的数据保存到 swap 上,这样系统就有更多的物理内存为各个进程服务,而当系统需要访问 swap 上存储的内容时,再将 swap 上的数据加载到内存中,也就是常说的 swap out 和 swap in。
二、为什么使用交换分区?
交换分区的主要目的是缓解系统物理内存不足的问题,通过使用硬盘上的部分空间作为虚拟内存,Linux 可以在物理内存耗尽时继续运行其他程序,尽管交换分区比物理内存慢得多,但它提供了一种在内存紧张情况下保持系统运行的方法。
三、交换分区的类型
1、交换分区:在安装操作系统时创建的一个独立分区。
2、交换文件:如果没有多余的分区,可以用交换文件来代替,创建方法包括使用dd
或fallocate
命令。
四、如何创建和管理交换分区
1、查看当前系统是否设置了交换分区
free -m
swap 栏都是 0 0 0,表示没有设置交换分区。
2、创建交换文件
sudo dd if=/dev/zero of=/swapfile bs=1M count=2048
或者
fallocate -l 2G /swapfile
3、格式化交换文件并启用
sudo mkswap /swapfile sudo swapon /swapfile
4、验证交换文件大小
sudo du -sh /swapfile
5、修改文件权限
sudo chown root:root /swapfile sudo chmod 600 /swapfile
6、编辑/etc/fstab
文件以便开机自动挂载
/swapfile swap swap defaults 0 0
7、卸载交换分区
sudo swapoff /swapfile
五、Swap分区大小的建议值
根据系统的物理内存大小,交换分区的建议值如下:
内存大小 | 推荐的 swap 空间大小 |
< 4GB | 不少于 2GB |
4GB~16GB | 不少于 4GB |
16GB~64GB | 不少于 8GB |
64GB~256GB | 不少于 16GB |
六、调整 Swap 使用策略
内核参数vm.swappiness
控制换出运行时内存的相对权重,参数值大小对如何使用 swap 分区有很大联系,值越大,表示越积极使用 swap 分区,越小表示越积极使用物理内存,一般系统的默认值swappiness=60
,表示内存使用率超过100-60=40%
时开始使用交换分区。
临时调整该值
sudo sysctl vm.swappiness=20
永久调整需编辑/etc/sysctl.conf
文件,加入如下内容
vm.swappiness=20
加载参数
sudo sysctl -p
七、归纳
交换分区在 Linux 系统中扮演着重要的角色,特别是在物理内存不足的情况下,通过合理配置和使用交换分区,可以有效提升系统的运行效率和稳定性,需要注意的是,频繁使用交换分区会影响系统性能,因此应根据实际情况灵活调整 swap 的使用策略。
各位小伙伴们,我刚刚为大家分享了有关“linux 交换区”的知识,希望对你们有所帮助。如果您还有其他相关问题需要解决,欢迎随时提出哦!