当前位置: 首页 > news >正文

Linux环境下Swap配置方法与技巧

一、检查现有Swap状态
在配置Swap前,先检查系统当前的Swap使用情况:

bash
free -h
swapon --show
cat /proc/swaps
二、创建Swap文件(推荐方法)
1. 创建Swap文件
bash
# 创建4GB的Swap文件(根据需求调整大小)
sudo fallocate -l 4G /swapfile

# 如果fallocate不可用,可以使用dd命令
# sudo dd if=/dev/zero of=/swapfile bs=1M count=4096
2. 设置权限
bash
sudo chmod 600 /swapfile
3. 格式化为Swap
bash
sudo mkswap /swapfile
4. 启用Swap文件
bash
sudo swapon /swapfile
5. 永久生效(开机自动挂载)
编辑/etc/fstab文件,添加以下行:

/swapfile none swap sw 0 0
三、创建Swap分区(传统方法)
1. 使用fdisk/gparted创建新分区
bash
sudo fdisk /dev/sdX  # 替换为实际磁盘
在分区工具中创建新分区,类型设置为Linux swap(82)。

2. 格式化Swap分区
bash
sudo mkswap /dev/sdXN  # 替换为实际分区
3. 启用Swap分区
bash
sudo swapon /dev/sdXN
4. 永久生效
同样需要在/etc/fstab中添加:
/dev/sdXN none swap sw 0 0
四、调整Swap使用策略
1. 修改swappiness值(0-100)
bash
# 查看当前值
cat /proc/sys/vm/swappiness

# 临时修改(推荐值10-60)
sudo sysctl vm.swappiness=30

# 永久修改
echo "vm.swappiness=30" | sudo tee -a /etc/sysctl.conf
2. 修改vfs_cache_pressure(控制缓存回收)
bash
查看当前值
cat /proc/sys/vm/vfs_cache_pressure

# 临时修改(推荐值50-100)
sudo sysctl vm.vfs_cache_pressure=50

# 永久修改
echo "vm.vfs_cache_pressure=50" | sudo tee -a /etc/sysctl.conf
五、Swap优化技巧
SSD优化:如果Swap在SSD上,可以降低swappiness值以减少写入

ZRAM:对于内存有限的系统,考虑使用ZRAM(压缩的内存交换)

多个Swap文件:可以创建多个较小的Swap文件分散IO负载

优先级设置:如果有多个Swap设备,可以设置优先级

六、删除Swap
1. 禁用Swap
bash
sudo swapoff /swapfile
# 或
sudo swapoff /dev/sdXN
2. 删除Swap文件
bash
sudo rm /swapfile
3. 从/etc/fstab中删除对应行
七、Swap大小建议
内存 < 2GB:Swap = 2倍内存

内存 2-8GB:Swap = 等于内存

内存 > 8GB:Swap = 0.5倍内存或更少

服务器:根据应用需求,通常4-8GB足够

八、高级技巧
使用Btrfs文件系统:可以创建Swap子卷

加密Swap:增强安全性

监控Swap使用:使用vmstat 1或sar -S 1监控Swap活动

相关文章:

  • InnoDB 底层原理
  • Loop(循环)和Cycle(环)-《分析模式》漫谈55
  • 【笔记ing】AI大模型-05单层感知机与多层感知机
  • 周末学习笔记:Python文件操作(结构化数据转换与文件处理)
  • 算法:有一个整数数组,长度为n。她希望通过一系列操作将数组变成一个回文数组。
  • Domain Adaptation领域自适应
  • Java多态课堂练习题
  • ​‌FireCrawl‌爬虫工具​, Craw4ai
  • 算法思想之模拟
  • LaTeX 的pstricks-add宏绘图练习
  • SJ7W5(四角号码7万五千字)取码细则V2
  • AWS Redshift的使用场景及一些常见问题
  • vue+flask+GNN+neo4j图书知识图谱推荐系统
  • 【SQL】COUNT... FILTER 的适用场景
  • 大模型在直肠癌诊疗全流程预测及应用研究报告
  • 已开源!CMU提出NavRL :基于强化学习的无人机自主导航和动态避障新方案
  • Threejs 奇幻几何体:边缘、线框、包围盒大冒险
  • 深入剖析 RocketMQ 中的 MappedFile 技术
  • 使用MCP服务通过自然语言操作数据库(vscode+cline版本)
  • [极客大挑战 2019]PHP 1
  • 巴基斯坦召开国家安全委员会紧急会议,应对印方连环举措
  • 毕节两兄弟摘马蜂窝致路人被蜇去世,涉嫌过失致人死亡罪被公诉
  • 漫画阅读APP刊载1200余部侵权作品:20人获刑,案件罚金超千万元
  • 过敏性鼻炎,不只是“打喷嚏”那么简单
  • 冒充县领导亲戚十年骗取38箱香菇木耳,河南一男子被判拘役
  • 特斯拉季度利润暴跌71%,马斯克下月开始大幅减少为政府工作时间