Debian 服务器 Swap 与内存优化:从 free 到 swappiness

举报
yd_281936295 发表于 2026/11/01 10:18:04 2026/11/01
【摘要】 用 free 看清内存与 Swap 占用,理解 swappiness 的含义并合理调整,掌握 Swap 文件的创建与启用,按顺序排查内存不足,照顾好 1GB 小内存机。

接手一台 Debian 服务器,我习惯先看内存。很多卡顿是内存吃满、Swap 被频繁读写造成的。

用 free 看清现状

执行 free -h,看 Mem 的 total、used、free,更要看 available,它是真正还能给新进程用的内存。Swap 看 total 和 used:长期占用高,说明内存确实紧张。再用 top 或 ps aux --sort=-%mem 找出大户。

swappiness 的含义与调整

swappiness 是内核把不活跃内存换出到 Swap 的积极程度,范围 0 到 100,Debian 默认一般是 60。数值越大,越倾向于提前换出;越小,越倾向于留在物理内存。响应敏感的服务,我常调到 10:

sysctl vm.swappiness=10

写入 /etc/sysctl.conf 可长期生效,改完用 cat /proc/sys/vm/swappiness 确认。内存不够时,进程仍可能被 OOM 终止。

Swap 文件的创建与启用

没有 Swap 分区时,用文件更灵活:

fallocate -l 2G /swapfile
chmod 600 /swapfile
mkswap /swapfile && swapon /swapfile

开机启用,在 /etc/fstab 加一行:/swapfile none swap sw 0 0。停用时先 swapoff,再删文件和记录。

内存不足的排查顺序

顺序是:free 看 available 和 Swap;top 找大户;查日志看泄漏或异常重试;停不必要的常驻进程;最后决定调 swappiness、加 Swap 或升级内存。Swap 能救急,不能代替修泄漏和容量规划。

1GB 小内存机的注意事项

小内存机先停不必要的服务,数据库和 Java 应用要把堆与缓存上限设小,避免一启动就占满。Swap 设 1GB 到 2GB 应急即可,不要指望它扛重负载,频繁换页会让响应明显变慢。

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

评论(0)

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

全部回复

上滑加载中

设置昵称

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

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

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