news 2026/5/24 9:44:33

别再让Ubuntu卡成PPT了!手把手教你调整Swap分区大小(从1G到64G实战)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
别再让Ubuntu卡成PPT了!手把手教你调整Swap分区大小(从1G到64G实战)

Ubuntu性能优化实战:科学配置Swap分区解决系统卡顿

当你在Ubuntu上同时运行多个虚拟机、编译大型项目或处理海量数据时,是否经历过系统突然变得异常缓慢,甚至出现程序无响应的情况?这种"卡成PPT"的体验往往不是物理内存不足导致的,而是被忽视的Swap空间配置不当造成的性能瓶颈。

1. 诊断Swap空间不足的症状

系统开始频繁使用Swap空间时,会出现一些典型症状。最直观的表现是硬盘灯常亮,系统响应明显变慢,鼠标移动都变得卡顿。这时候打开终端执行htop命令,如果发现SWAP栏位使用率持续高位(超过70%),同时MEM栏位仍有可用内存,就是典型的Swap空间过小导致的性能问题。

另一个判断方法是使用vmstat命令观察si(swap in)和so(swap out)两列的数据:

vmstat 1 5

如果这两列数值持续不为零,说明系统正在频繁进行内存和Swap之间的数据交换。这种交换操作会显著拖慢系统速度,因为硬盘I/O速度远低于内存访问速度。

注意:现代Ubuntu安装时默认的Swap空间设置往往偏保守,特别是对于大内存(32GB以上)的机器,默认1-2GB的Swap空间在高负载场景下远远不够。

2. Swap空间配置的科学原则

传统上关于Swap空间大小的经验法则(如"Swap应该是物理内存的2倍")已经不完全适用于现代计算机系统。更科学的配置方案应该考虑以下因素:

  • 休眠需求:如果需要使用系统休眠功能,Swap空间应不小于物理内存大小
  • 工作负载特性:内存密集型应用(如虚拟机、数据库)需要更多Swap空间作为缓冲
  • 物理内存大小:大内存系统可以适当减少Swap比例

推荐的计算公式:

Swap大小 = min(4GB, 物理内存 × 内存使用系数)

其中内存使用系数可以参考下表:

物理内存大小推荐系数示例计算(32GB内存)
≤ 8GB2.0-
8-64GB0.532 × 0.5 = 16GB
> 64GB0.25128 × 0.25 = 32GB

对于大多数开发用机(32GB内存),16GB的Swap空间是一个合理的起点。如果经常运行内存密集型任务,可以适当增加到24-32GB。

3. 创建和启用Swap文件的详细步骤

3.1 创建Swap文件

首先确定当前系统的Swap使用情况:

sudo swapon --show free -h

如果现有Swap空间不足,可以创建一个新的Swap文件。以下是创建64GB Swap文件的具体步骤:

sudo fallocate -l 64G /swapfile sudo chmod 600 /swapfile sudo mkswap /swapfile

这里使用fallocate而非dd命令,因为前者创建大文件的速度更快。chmod 600确保文件权限安全,避免潜在的安全风险。

3.2 启用临时Swap

创建完成后,可以立即启用这个Swap文件:

sudo swapon /swapfile

验证Swap是否已成功添加:

free -h

你应该能看到Swap总量已经增加。要查看更详细的信息:

cat /proc/swaps

4. 永久化Swap配置

要使Swap配置在重启后依然有效,需要编辑/etc/fstab文件:

sudo nano /etc/fstab

在文件末尾添加以下行:

/swapfile none swap sw 0 0

保存后,可以使用以下命令测试配置是否正确:

sudo swapoff -a sudo swapon -a

如果没有任何错误提示,说明配置成功。可以通过free -h再次确认Swap空间是否正常加载。

5. 高级调优与注意事项

5.1 Swapiness参数调整

Linux内核参数vm.swappiness控制系统使用Swap的倾向程度,取值范围0-100。值越高,系统越倾向于使用Swap空间。对于大内存系统,可以适当降低这个值:

# 查看当前值 cat /proc/sys/vm/swappiness # 临时修改 sudo sysctl vm.swappiness=10 # 永久修改 echo "vm.swappiness=10" | sudo tee -a /etc/sysctl.conf

5.2 多个Swap文件的管理

系统可以同时使用多个Swap文件或分区。要查看所有活动的Swap空间:

swapon --show

如果需要停用某个Swap文件:

sudo swapoff /path/to/swapfile

5.3 性能监控与调优

长期监控Swap使用情况有助于优化配置:

# 实时监控内存和Swap使用情况 watch -n 1 'free -h; echo; vmstat -s' # 查看Swap使用历史 sar -r -S 1 10

如果发现Swap使用率长期居高不下,可能需要考虑:

  1. 增加物理内存
  2. 优化应用程序内存使用
  3. 进一步增加Swap空间

6. 常见问题解决方案

Q: 创建大Swap文件时出现"fallocate failed: Operation not supported"错误

A: 某些文件系统(如FAT32)不支持fallocate,可以改用dd命令:

sudo dd if=/dev/zero of=/swapfile bs=1M count=65536

Q: 系统重启后Swap未自动加载

A: 检查以下内容:

  1. /etc/fstab中的配置是否正确
  2. Swap文件权限是否为600
  3. 使用dmesg | grep swap查看启动日志

Q: 如何完全移除Swap文件

A: 执行以下步骤:

sudo swapoff /swapfile sudo rm /swapfile # 然后从/etc/fstab中删除相关行

对于SSD用户,可以考虑将Swap文件放在单独的分区,或者使用zram作为替代方案,减少对固态硬盘的写入。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/24 9:44:29

可微分编程:连接物理仿真与机器学习的通用翻译器

1. 项目概述:为什么我们需要一个“通用翻译器”?在科学计算和工程仿真领域,我们常常面临一个尴尬的割裂。一边是描述物理世界基本规律的偏微分方程,它们通常由像Firedrake、FEniCS这样高度专业化、性能强大的有限元求解器来处理。…

作者头像 李华
网站建设 2026/5/24 9:39:04

AI写专著全攻略:AI专著写作工具助力,20万字专著快速成型!

学术专著创作困境与AI工具解决方案 对于学术研究人员而言,撰写一本学术专著并不是一次性灵感的爆发,而是一场经过几年的磨砺与坚持。从选定研究主题开始,到构建清晰有序的章节架构,再到逐字填充内容、校验参考文献,整…

作者头像 李华
网站建设 2026/5/24 9:37:34

5分钟掌握猫抓浏览器扩展的终极指南:轻松捕获在线视频资源

5分钟掌握猫抓浏览器扩展的终极指南:轻松捕获在线视频资源 【免费下载链接】cat-catch 猫抓 浏览器资源嗅探扩展 / cat-catch Browser Resource Sniffing Extension 项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch 你是否曾经遇到过这样的情况…

作者头像 李华
网站建设 2026/5/24 9:36:33

SHAP值在时间感知研究中的应用:从机器学习预测到认知机制解释

1. 项目概述:当时间感知遇上可解释AI 在认知科学和神经工程领域,时间感知一直是个迷人的谜题。我们如何感知时间的流逝?为什么有时“度日如年”,有时又“光阴似箭”?传统研究多依赖于行为实验和理论模型,但…

作者头像 李华
网站建设 2026/5/24 9:32:26

终极指南:5步掌握SketchUp STL插件,轻松实现3D打印模型转换

终极指南:5步掌握SketchUp STL插件,轻松实现3D打印模型转换 【免费下载链接】sketchup-stl A SketchUp Ruby Extension that adds STL (STereoLithography) file format import and export. 项目地址: https://gitcode.com/gh_mirrors/sk/sketchup-stl…

作者头像 李华