2G 内存的小服务器,我是怎么加 swap 的

举报
yd_299926989 发表于 2026/11/02 18:28:22 2026/11/02
【摘要】 我那台 Flexus 是 2 核 2G 的,装了宝塔、MySQL 再跑个小站,内存基本就见底了。有一次半夜 MySQL 被 OOM 杀掉,网站直接打不开,第二天早上才发现。后来就加了个 swap,记一下步骤。先看看有没有:free -h如果 Swap 那一行全是 0,就是没开。建一个 2G 的 swap 文件:fallocate -l 2G /swapfilechmod 600 /swapf...

我那台 Flexus 是 2 核 2G 的,装了宝塔、MySQL 再跑个小站,内存基本就见底了。有一次半夜 MySQL 被 OOM 杀掉,网站直接打不开,第二天早上才发现。后来就加了个 swap,记一下步骤。

先看看有没有:

free -h

如果 Swap 那一行全是 0,就是没开。

建一个 2G 的 swap 文件:

fallocate -l 2G /swapfile

chmod 600 /swapfile

mkswap /swapfile

swapon /swapfile

fallocate 报错的话可以换成 dd if=/dev/zero of=/swapfile bs=1M count=2048,慢一点而已。

要开机自动挂上,在 /etc/fstab 加一行:

/swapfile none swap sw 0 0

最后把 swappiness 调低一点,不然内存还没满它就开始往硬盘里换,反而变卡:

sysctl vm.swappiness=10

再写进 /etc/sysctl.conf 里长期生效。

加完之后跑了快两周,MySQL 没再被杀过。当然 swap 只是兆底,硬盘比内存慢太多了,如果常常用到很多 swap,还是该考虑升配置或者把 MySQL 的缓存调小。

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

评论(0)

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

全部回复

上滑加载中

设置昵称

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

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

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