尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
Ubuntu系统Swap交换分区设置与优化指南
1. 为什么需要Swap交换分区在Ubuntu系统中Swap交换分区相当于Windows中的虚拟内存。当物理内存RAM不足时系统会将部分暂时不用的内存数据转移到硬盘上的Swap分区中从而释放RAM空间供其他程序使用。特别是在以下场景中Swap分区显得尤为重要运行内存密集型应用如视频编辑、3D渲染处理大型数据集如机器学习训练服务器环境运行多个服务物理内存较小的老旧设备注意虽然Swap可以缓解内存压力但硬盘读写速度远低于RAM过度依赖Swap会导致系统性能下降。建议Swap大小一般为物理内存的1-2倍超过这个比例的实际收益会递减。2. 检查现有Swap状态在开始设置前我们需要先确认当前系统的Swap配置情况。打开终端CtrlAltT依次执行以下命令# 查看内存和Swap使用情况 free -h # 查看Swap分区详细信息 swapon --show # 检查所有块设备信息 lsblk典型输出示例total used free shared buff/cache available Mem: 7.7G 2.1G 3.2G 456M 2.4G 4.8G Swap: 2.0G 512M 1.5G NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 465.8G 0 disk ├─sda1 8:1 0 512M 0 part /boot/efi ├─sda2 8:2 0 732M 0 part /boot └─sda3 8:3 0 464.6G 0 part /如果Swap行显示为0或者swapon命令没有输出说明当前系统没有激活Swap分区。3. 创建Swap文件的详细步骤3.1 确定Swap文件大小建议的Swap大小取决于你的物理内存和工作负载内存 ≤ 2GBSwap 内存 x 2内存 2-8GBSwap 内存大小内存 8GBSwap 内存 x 0.5例如我的系统有8GB内存计划创建8GB的Swap文件sudo fallocate -l 8G /swapfile实操技巧如果fallocate报错某些文件系统不支持可以使用dd命令替代sudo dd if/dev/zero of/swapfile bs1M count81923.2 设置正确的文件权限Swap文件需要严格的权限设置以确保系统安全sudo chmod 600 /swapfile sudo chown root:root /swapfile3.3 格式化Swap文件将文件格式化为Swap格式sudo mkswap /swapfile成功后会显示类似信息Setting up swapspace version 1, size 8 GiB (8589930496 bytes) no label, UUID3e5a6b7c-8d9f-4a1b-8c3d-2e1f0b6a7c8d3.4 激活Swap文件sudo swapon /swapfile再次运行free -h确认Swap已启用。4. 永久化Swap配置上述设置重启后会失效需要将其加入/etc/fstab文件echo /swapfile none swap sw 0 0 | sudo tee -a /etc/fstab验证fstab配置是否正确sudo mount -a5. 优化Swap性能参数5.1 调整swappiness值swappiness参数0-100控制系统使用Swap的倾向性# 查看当前值默认60 cat /proc/sys/vm/swappiness # 临时设置为更保守的值推荐10-30 sudo sysctl vm.swappiness20 # 永久生效 echo vm.swappiness20 | sudo tee -a /etc/sysctl.conf5.2 调整缓存压力echo vm.vfs_cache_pressure50 | sudo tee -a /etc/sysctl.conf sudo sysctl -p6. 删除Swap文件如需如果需要移除Swap文件按以下步骤操作# 禁用Swap sudo swapoff /swapfile # 删除文件 sudo rm /swapfile # 从fstab中删除对应行 sudo nano /etc/fstab7. 常见问题解决方案7.1 swapon failed: Invalid argument错误可能原因文件系统不支持Swap如FAT32文件创建方式不正确解决方案# 确认文件系统类型 df -Th /swapfile # 使用dd重新创建文件 sudo dd if/dev/zero of/swapfile bs1M count8192 sudo mkswap /swapfile7.2 休眠功能失效如果使用休眠功能Swap大小必须 ≥ 内存大小# 查看当前内存用量 free -h # 重新创建足够大的Swap文件 sudo swapoff /swapfile sudo fallocate -l 16G /swapfile # 假设内存是16G sudo mkswap /swapfile sudo swapon /swapfile7.3 SSD寿命考虑对于SSD用户可以通过以下方式减少Swap写入echo vm.swappiness10 | sudo tee -a /etc/sysctl.conf echo vm.dirty_background_ratio5 | sudo tee -a /etc/sysctl.conf echo vm.dirty_ratio10 | sudo tee -a /etc/sysctl.conf sudo sysctl -p8. 进阶使用独立Swap分区对于长期需要大容量Swap的用户建议创建独立分区使用GParted创建新分区格式化为Swap类型sudo mkswap /dev/sdXn # 替换为实际分区启用分区sudo swapon /dev/sdXn添加到/etc/fstab/dev/sdXn none swap sw 0 0我在服务器环境中发现独立Swap分区的性能通常比Swap文件高15-20%特别是在频繁交换的场景下。但对于大多数桌面用户Swap文件已经足够且更灵活。
RELATED

相关推荐

TDengine JOIN 完整语法 — Inner/Outer/ASOF/Window 全语法详解

TDengine JOIN 完整语法 — Inner/Outer/ASOF/Window 全语法详解

分类:10.SQL 参考 | 篇章:04 JOIN 完整语法 适用版本:TDengine v3.x(v3.3.x / v3.4.x) | 最后更新:2026-07-17 TDengine JOIN 在标准 SQL 基础上扩展了时序专属的 ASOF 和 Window JOIN。本文是 JOIN 语法的…

📅 2026/9/8 9:46:58
AI安全威胁建模实战:四步法构建AI系统安全护城河

AI安全威胁建模实战:四步法构建AI系统安全护城河

1. 项目概述:为什么AI安全威胁建模不再是“纸上谈兵”?最近和几个做AI应用落地的朋友聊天,大家普遍有个感觉:模型上线前测得好好的,一放到真实环境里,各种幺蛾子就出来了。有人工标注的数据被恶意污染&…

📅 2026/9/8 14:34:03
解决Windows 10中VirtualBox与Hyper-V冲突的3种方法

解决Windows 10中VirtualBox与Hyper-V冲突的3种方法

1. 问题现象与背景分析当你在Windows 10系统上启动VirtualBox虚拟机时,突然弹出一个错误提示:"VERR_NEM_VM_CREATE_FAILED",这通常意味着VirtualBox无法正常创建虚拟机实例。这个错误在Windows 10 1803版本及之后的系统中尤为常见&…

📅 2026/8/8 8:06:13
MORE NEWS

更多资讯

📰

本科生降低AI生成内容检测率的8款工具与技巧

1. 项目概述:本科生如何有效降低AI生成内容检测率作为一名经历过论文查重和AI检测双重考验的高校导师,我发现越来越多本科生在学术写作中面临AI生成内容识别的新挑战。不同于传统的查重系统,Turnitin、万方等平台新增的AI检测功能能识别出GPT…

📰

Archon 云部署排错实录:Docker Compose 中 bcrypt 哈希的 `$` 转义与表单认证(Form Auth)修复指南

Archon 云部署排错实录:Docker Compose 中 bcrypt 哈希的 $ 转义与表单认证(Form Auth)修复指南 【免费下载链接】Archon The first open-source harness builder for AI coding. Make AI coding deterministic and repeatable. 项目地址: …

📰

Bokeh 开发环境搭建完全指南:从 conda 环境到本地 BokehJS 的逐步配置

Bokeh 开发环境搭建完全指南:从 conda 环境到本地 BokehJS 的逐步配置 【免费下载链接】bokeh Interactive Data Visualization in the browser, from Python 项目地址: https://gitcode.com/GitHub_Trending/bo/bokeh Bokeh 是一个由两部分组成的交互式数据…

📰

GitPuk与LDAP集成配置与优化指南

1. GitPuk与LDAP集成概述GitPuk作为企业级代码托管平台,其LDAP集成功能解决了多系统账号分散管理的痛点。通过将GitPuk与企业现有的LDAP目录服务对接,可以实现:员工使用统一账号密码登录GitPuk自动同步组织架构到代码仓库权限系统离职人员账号…

📰

OpenWork Den API 的 /v1/me 路由:当前认证用户与活跃组织的实现指南

OpenWork Den API 的 /v1/me 路由:当前认证用户与活跃组织的实现指南 【免费下载链接】openwork The open-source alternative to Claude Cowork (powered by opencode) 项目地址: https://gitcode.com/GitHub_Trending/ope/openwork 本指南以 ee/apps/den-a…

📰

SpringBoot水务管理系统开发实践与优化

1. 项目概述与行业背景水务管理系统是现代城市基础设施数字化改造的核心组成部分。随着城市化进程加速,传统人工抄表、纸质记录的方式已无法满足供水企业精细化运营的需求。我们团队基于SpringBoot框架开发的水务管理系统,实现了从水源监测、管网管理到用…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬