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文件已经足够且更灵活。

相关新闻

GitHub Actions集成k6实现CI/CD自动化负载测试实战指南

GitHub Actions集成k6实现CI/CD自动化负载测试实战指南

1. 项目概述:为什么要在CI/CD中做负载测试?如果你和我一样,经历过线上服务在流量高峰时突然“挂掉”,然后整个团队手忙脚乱地查日志、回滚版本,你就会明白一件事:性能问题,不应该在用户发现之后…

2026/7/17 18:52:06 阅读更多 →
Frida动态Hook技术:逆向移动端App API实现高效数据采集

Frida动态Hook技术:逆向移动端App API实现高效数据采集

1. 项目概述:当常规爬虫遇到移动端壁垒做爬虫的朋友们,尤其是从网页端转向移动端数据采集的,肯定都遇到过这个坎儿:目标App的数据接口不再是明晃晃的HTTP/HTTPS请求,而是被封装在App内部,通过加密、混淆、甚…

2026/7/17 18:52:06 阅读更多 →
iOS逆向实战:Frida Thread.backtrace函数调用链追踪技术详解

iOS逆向实战:Frida Thread.backtrace函数调用链追踪技术详解

1. 项目概述:为什么需要精准的函数调用链追踪?在iOS逆向工程和动态分析的世界里,我们常常面临一个核心挑战:如何清晰地看到一个函数被调用的完整路径?你可能会用Frida的Interceptor.attach成功Hook到一个目标函数&…

2026/7/17 18:50:05 阅读更多 →

最新新闻

Ubuntu 18.04 WiFi驱动问题诊断与解决指南

Ubuntu 18.04 WiFi驱动问题诊断与解决指南

1. Ubuntu 18.04 WiFi问题全面诊断指南 刚装完Ubuntu 18.04发现WiFi图标消失?这通常是驱动兼容性问题导致的。作为从Ubuntu 12.04一路用过来的老用户,我遇到过各种无线网卡驱动问题。先别急着重装系统,跟着我一步步排查。 打开终端&#xff…

2026/7/17 19:38:18 阅读更多 →
从零入门 Linux:从发展史到用户权限,一篇搭好完整认知框架

从零入门 Linux:从发展史到用户权限,一篇搭好完整认知框架

从今天开始,我们正式开启全新的Linux系列连载!和网上那些零散知识点堆砌的教程不一样,这个专栏我会全程围绕从使用到理解这条主线来写,一步步带你吃透文件系统、进程管理、权限机制、常用工具链这些 Linux最核心的模块。我不会只教…

2026/7/17 19:38:18 阅读更多 →
音视频混剪工具

音视频混剪工具

音视频混剪工具 123云 https://www.123865.com/s/lWe7Vv-DUYr 127云 https://www.go127.com/s/L4rir 天翼云 https://cloud.189.cn/web/share?codeZBvQ3a2Iriee 访问码:prb4 微云 https://share.weiyun.com/etPp5PDl

2026/7/17 19:36:18 阅读更多 →
一文搞懂 MySQL 架构与原理:SQL 语句的生命周期

一文搞懂 MySQL 架构与原理:SQL 语句的生命周期

在初学MySQL时,大家第一个学习的SQL一定是select语句,例如下面的语句: select * from table where id1; 但是期间你想是否想过,MySQL 执行一条 select 查询语句,在 MySQL 中期间发生了什么? 下面我们带着…

2026/7/17 19:36:18 阅读更多 →
一文读懂Kimi K3核心基础知识

一文读懂Kimi K3核心基础知识

写在前面 欢迎大家关注Rocky的公众号:WeThinkIn 欢迎大家关注Rocky的知乎:Rocky Ding 《三年面试五年模拟》AIGC/LLM/AI Agent算法工程师/开发工程师求职面试秘籍独家资源:【三年面试五年模拟】WeThinkIn/AIGC-Interview-Book,欢迎…

2026/7/17 19:34:18 阅读更多 →
Claude 3在结构化文档识别中的实践与优化

Claude 3在结构化文档识别中的实践与优化

1. 项目背景与核心价值 在数字化转型的浪潮中,企业每天需要处理大量非结构化文档数据。发票报销、证件核验、交通管理等场景下,传统OCR技术往往难以应对复杂版式、模糊图像或专业术语的识别需求。Claude 3作为新一代多模态大模型,其强大的视觉…

2026/7/17 19:34:18 阅读更多 →

日新闻

2026全国外贸独立站搭建公司推荐排行,含零代码SAAS、AI编程、源码定制

2026全国外贸独立站搭建公司推荐排行,含零代码SAAS、AI编程、源码定制

2026全国外贸独立站搭建公司推荐排行 外贸工厂、工贸企业建设官网,核心需求与普通展示型网站并不相同。除了页面整洁、多语言适配和海外访问体验,企业还要重点考虑数据能否导出、站点能否迁移、源码是否可控、后续费用是否透明,以及更换服务…

2026/7/17 0:02:10 阅读更多 →
HarmonyOS 应用开发《掌上英语》第19篇:3D 翻转动画实现——ArkTS 动画系统全解析

HarmonyOS 应用开发《掌上英语》第19篇:3D 翻转动画实现——ArkTS 动画系统全解析

3D 翻转动画实现——ArkTS 动画系统全解析引言 在移动应用中,卡片翻转动画是最受欢迎的交互动效之一,它能给用户带来直观的"物理世界"操作感。在我们的英语学习 App 的单词学习页面(CourseHomePage.ets)中,就…

2026/7/17 0:02:10 阅读更多 →
2026键盘推荐|IQUNIX EV63多场景适配,不允许有人不知道!

2026键盘推荐|IQUNIX EV63多场景适配,不允许有人不知道!

现在很多用户都需要一款能适配多场景的键盘,既能满足交流码字的需求,又能应对居家电竞的性能需求,最好还得有点小颜值。而大多键盘都只能兼顾其中一两个场景。这次我实测了IQUNIX EV63三款配色(银武士、黑武士、紫罗兰&#xff09…

2026/7/17 0:04:10 阅读更多 →

周新闻

互联网大厂 Java 求职面试:燕双非的搞笑回答与技术探讨

互联网大厂 Java 求职面试:燕双非的搞笑回答与技术探讨

互联网大厂 Java 求职面试:燕双非的搞笑回答与技术探讨 在一个阳光明媚的上午,互联网大厂的面试官坐在桌前,准备迎接他的面试候选人——燕双非,一个以搞笑和幽默著称的程序员。第一轮提问 面试官:燕双非,作…

2026/7/17 3:22:28 阅读更多 →
车载以太网PMA测试设备选型:示波器、VNA、信号源3类仪器关键参数与预算评估

车载以太网PMA测试设备选型:示波器、VNA、信号源3类仪器关键参数与预算评估

车载以太网PMA测试设备选型:示波器、VNA、信号源3类仪器关键参数与预算评估在智能驾驶和车联网技术快速发展的今天,车载以太网作为新一代车载网络的核心传输技术,其物理层性能直接决定了数据传输的可靠性和稳定性。1000BASE-T1作为当前主流的…

2026/7/17 3:01:28 阅读更多 →
VSCode EIDE 插件 2.0:APM32/STM32 项目迁移实战,5步完成Keil工程转换

VSCode EIDE 插件 2.0:APM32/STM32 项目迁移实战,5步完成Keil工程转换

VSCode EIDE 插件 2.0:APM32/STM32 项目迁移实战指南嵌入式开发领域正经历一场工具链的静默革命。当传统Keil用户首次打开VSCode的扩展市场搜索EIDE时,往往会惊讶于这个看似简单的插件竟能重构十余年的开发习惯。本文将揭示如何用五个精准步骤&#xff0…

2026/7/16 23:40:37 阅读更多 →

月新闻