小内存机器加 swap 到底有没有用:我给两台小机器做的对比

举报
猪古力陈 发表于 2026/10/31 11:16:20 2026/10/31
【摘要】 小内存机器加 swap 到底有没有用:我给两台小机器做的对比刚开始玩小内存云服务器的时候,我听过两种完全相反的说法:一种说内存不够就加 swap,能救命;另一种说 swap 是硬盘冒充内存,慢得没法用,加了等于没加。两种说法我都半信半疑,直到自己手里有了两台小机器,才有机会实测一下:一台是 1G 内存的机器,一台是 2G 内存的机器,两台都加了 swap,用了一段时间之后,我对这件事的看法...

小内存机器加 swap 到底有没有用:我给两台小机器做的对比

刚开始玩小内存云服务器的时候,我听过两种完全相反的说法:一种说内存不够就加 swap,能救命;另一种说 swap 是硬盘冒充内存,慢得没法用,加了等于没加。两种说法我都半信半疑,直到自己手里有了两台小机器,才有机会实测一下:一台是 1G 内存的机器,一台是 2G 内存的机器,两台都加了 swap,用了一段时间之后,我对这件事的看法才算落了地。

先说结论:swap 有用,但它救的是“不死机”,不是“变快”。这句话是我实测下来最准确的总结。如果你指望加了 swap 之后机器跑得跟大内存机器一样快,那一定会失望;但如果你要的是关键时刻别因为内存耗尽直接把服务杀掉,那 swap 确实能顶一下。把期望值摆对,后面很多纠结就不存在了。

1G 那台机器是最典型的例子。不加 swap 的时候,装个稍微重一点的服务,内存一满,系统就开始杀进程,有时候杀掉的正好是正在跑的主服务,半夜就得爬起来重启。加了 1G swap 之后,同样的负载下,机器会先变慢,而不是直接杀进程。变慢的表现很明显:页面响应变迟钝,命令行敲下去要等一会儿才有回显。但慢归慢,服务还在,数据没丢,给了我去处理的时间。对我来说,这个“慢但还活着”的窗口,就是 swap 最大的价值。

2G 那台机器的情况不太一样。平时负载不重的时候,swap 基本是摆设,系统根本不会去碰它;只有同时开几个东西、内存一下子顶上去的时候,swap 才会被用到一点点。也就是说,2G 机器的 swap 更像是一个保险:平时用不上,出事的时候顶一下,不至于直接崩掉。这也让我明白,swap 的大小不是越大越好。1G 内存配 1G swap、2G 内存配 2G swap,对我这种轻量用途来说已经够了,再往上加,硬盘空间白白占着,平时也用不上。

加 swap 的时候,还有一个参数值得说一下,就是 swappiness,也就是系统多积极使用 swap 的倾向。这个值默认一般是 60,意思是系统比较早就开始把不常用的内存页换到 swap 上去。我后来把它调低到了 10,意思是尽量先用物理内存,实在不够了再动 swap。调低之后,日常使用里机器明显更跟手,因为系统不会动不动就把东西往硬盘上搬;只有内存真的吃紧时,swap 才出来顶一下。这个小调整对小内存机器的体验影响挺大的,值得单独记一笔。

不过 swap 也有它的坑,第一个就是硬盘速度。swap 的本质是拿硬盘空间当内存用,硬盘再快也比内存慢几个数量级,所以一旦系统开始大量用 swap,机器就会明显卡顿。如果发现 swap 一直被占满、机器长期处于卡顿状态,那说明问题已经不是“要不要 swap”,而是“负载本身就超出了这台机器的能力”,这时候该减服务、该升级配置升级配置,光靠加大 swap 是续不了命的。swap 能顶一时,顶不了一世。

第二个坑是别把 swap 当成内存规划的替代品。我一开始也犯过这个毛病:觉得加了 swap 就不用管内存了,服务随便往上堆。结果就是机器长期在“内存不够、靠 swap 硬撑”的状态下跑,体验越来越差,最后还是得回头做减法:哪个服务不常用就停掉,哪个服务吃内存就换个轻量替代。现在我的习惯是先算清楚常驻服务大概吃多少内存,留出余量,再把 swap 当作最后一道防线,而不是第一道防线。

还有一个小经验是关于 swap 文件本身的。加 swap 不一定要单独分一个区,建一个 swap 文件、设置好权限、开机自动挂载,对小机器来说已经够用了。关键是开机自动挂载这一步一定要验证:重启一次机器,确认 swap 还在,而不是只在当前这次会话里生效。我就吃过这个亏,第一次加完没验证,机器重启后 swap 没了,过了好几天才发现,等于白加了。现在每次改完这类配置,我都会重启验证一次,确认配置是持久的,而不是“这次管用、下次没了”。

回过头看,swap 这件事没有那么神秘。它不是什么性能优化手段,而是一个兜底机制:平时尽量别用到它,用到的时候它能帮你争取处理时间。对 1G、2G 这种小内存机器来说,花几分钟配好 swap、把 swappiness 调低、验证重启后还生效,是很划算的一笔投入。如果你手里也有小机器在跑服务,不妨先看一眼现在的内存和 swap 状态,再决定要不要补上这一层兜底。机器慢一点不可怕,可怕的是半夜被系统杀了进程,你还不知道。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。