打开/关闭菜单
打开/关闭外观设置菜单
打开/关闭个人菜单
未登录
未登录用户的IP地址会在进行任意编辑后公开展示。

搬瓦工服务器入门级性能优化(避免资源浪费/不必要的服务)

来自md5.pw
Leida留言 | 贡献2026年3月22日 (日) 07:37的版本 (搬瓦工服务器入门级性能优化(避免资源浪费/不必要的服务))
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)

当你拿到一台全新的搬瓦工(BandwagonHost)VPS 时,尤其是购买了 512MB 或 1GB 内存的入门级特价套餐,你可能会觉得资源非常局促。

很多新手都有一个误区:觉得 VPS 只要不装业务软件,内存就是完全空闲的。其实不然。现代的 Linux 操作系统(尤其是 Ubuntu)为了照顾各种复杂的物理机环境,默认在后台塞进了大量我们根本用不到的系统服务。

这些服务就像寄生虫一样,每个吃掉 10MB、20MB 的内存,加在一起就能吃掉一两百兆。对于小内存机器来说,这简直是巨大的浪费。

这篇文章将教你如何给一台刚刚重装好 Ubuntu 或 Debian 系统的 VPS 进行“深度瘦身”。我们将通过卸载和禁用不必要的服务,把被白白浪费的硬件资源全部抢回来。


一、 认清现实:你的内存被吃掉了多少?

在动手优化之前,我们先看看系统当前的真实资源占用情况。通过 SSH 连接到你的 VPS,输入以下命令:

free -h

观察 used(已使用)这一列。你会发现,一台什么业务都没跑的全新 Ubuntu 22.04 系统,可能已经占用了 200MB 甚至 300MB 的内存。对于一台只有 512MB 内存的机器来说,一半的命已经没了。

接下来,我们开始逐一清理这些毫无用处的后台进程。


二、 卸载与禁用不必要的服务

请注意,以下操作和命令主要针对搬瓦工 KiwiVM 面板里最主流的 Ubuntu 20.04 / 22.04 以及 Debian 11 / 12 系统。请逐行复制执行。

1. 彻底卸载 Snap 服务 (仅限 Ubuntu)

这是什么: Snap 是 Ubuntu 官方强推的一种软件安装包格式。它的缺点是启动极慢、占用大量内存,并且会在系统里生成十几个虚拟的只读磁盘(使用 df -h 命令时看到的那一堆 /dev/loop 就是它干的)。作为 VPS 玩家,我们平时全靠 Docker 和 apt 来安装软件,根本用不到 Snap。

清理命令:

# 停止所有 Snap 服务
systemctl stop snapd
systemctl disable snapd

# 彻底卸载 snapd 及其所有关联组件
apt purge snapd -y

# 清理残余的缓存和文件夹
rm -rf /snap
rm -rf /var/snap
rm -rf /var/lib/snapd

执行完毕后,你的系统不仅会省出几十兆内存,使用 df -h 看磁盘空间时也会清爽很多。

2. 禁用杂项硬件服务

这是什么: Linux 系统为了能够运行在各种物理电脑上,默认开启了许多硬件检测服务。

  • udisks2:用来检测你有没有往电脑上插 U 盘的。
  • multipathd:用来管理企业级存储阵列的。
  • ModemManager:用来检测有没有插 3G/4G 拨号上网卡的。
  • rpcbind:用来挂载老式的 NFS 网络硬盘的。

你的 VPS 是一台安静躺在机房里的虚拟机,根本不可能有人去给它插 U 盘或者拨号上网。这些服务全都在白白浪费内存。

清理命令:

我们将它们全部停止,并禁止开机自启:

systemctl disable --now udisks2.service
systemctl disable --now multipathd.service
systemctl disable --now multipathd.socket
systemctl disable --now ModemManager.service
systemctl disable --now rpcbind.service
systemctl disable --now rpcbind.socket

3. 禁用无用的网络等待服务

这是什么:NetworkManager-wait-online 是一个在系统开机时,强制等待所有网络接口都连接上互联网后,才允许系统继续启动的服务。它经常会导致 VPS 开机极其缓慢。VPS 的网络是由宿主机直接分配的固定网络,不需要这种复杂的等待机制。

清理命令:

systemctl disable --now NetworkManager-wait-online.service
systemctl mask NetworkManager-wait-online.service

三、 限制系统日志的无底洞

这是什么: Linux 系统内置了一个叫 systemd-journald 的日志守护进程。它会记录系统发生的所有事情。默认情况下,它不仅会把日志写在硬盘上,还会把最近的日志暂存在内存里。如果不加限制,它会吃掉你几十兆甚至上百兆的宝贵内存,同时日积月累撑爆硬盘。

我们需要修改它的配置文件,给它定一个死规矩:最多只能使用 50MB 的空间。

优化步骤:

打开日志配置文件:

nano /etc/systemd/journald.conf

使用方向键向下滚动,找到 SystemMaxUse= 这一行(前面可能有个 # 号)。 把 # 号删掉,并修改为 SystemMaxUse=50M。 再找到 RuntimeMaxUse= 这一行,去掉 # 号,修改为 RuntimeMaxUse=50M

修改后的这两行应该长这样:

SystemMaxUse=50M
RuntimeMaxUse=50M

按下 Ctrl+O 保存,回车确认,然后按下 Ctrl+X 退出编辑器。

重启日志服务让配置生效:

systemctl restart systemd-journald

四、 优化虚拟内存 (Swap) 的使用策略

这是什么: Swap 就是拿一部分硬盘空间当内存用。当物理内存快满的时候,系统会把一些不常用的数据塞进硬盘里,防止机器死机。 决定系统“有多积极去使用 Swap”的参数叫 swappiness。它的值在 0 到 100 之间。

  • 值越大(比如 Ubuntu 默认的 60):系统只要内存稍微用了一点,就会急急忙忙把数据往硬盘里写。由于硬盘速度远比不上真正的内存,这会导致你的 VPS 变得非常卡顿。
  • 值越小:系统会尽可能地使用真正的物理内存,只有在万不得已的时候才去动用硬盘。

对于普通的建站和容器部署,我们希望机器运行得尽量快,所以要把这个倾向值调低,建议设置为 10

优化步骤:

首先,临时修改当前系统的 swappiness 值为 10:

sysctl vm.swappiness=10

然后,为了保证重启后依然生效,我们需要把它写进系统配置文件里:

echo "vm.swappiness=10" >> /etc/sysctl.conf

这样,你的机器就只会优先使用速度极快的物理内存了。


五、 保持架构的绝对纯净

其实,入门级 VPS 最有效的性能优化方案,并不是敲多少行命令,而是控制你的部署欲望。

很多新手喜欢一上来就安装宝塔面板(BT Panel)或者 1Panel 等重型可视化管理面板。这些面板本身就会吃掉至少 200MB 到 300MB 的内存。对于 1GB 内存的机器来说,装完面板,留给真正业务的资源就所剩无几了。

极简运维建议: 放弃那些臃肿的面板环境,直接使用 原生 Docker + 纯 IP 端口直连 的模式。 你要运行监控探针,就单独跑一个探针容器;你要运行个人导航页,就跑一个导航页容器。不需要反向代理,不需要数据库环境的预装。只要你在系统的 UFW 防火墙里把对应的端口放行,直接通过 http://你的IP:端口 访问即可。


六、 验收成果

当你把上述第一到第四步的命令全部执行完毕后,建议直接重启一次服务器:

reboot

等待 1 分钟后重新连上 SSH。再次输入查看内存的命令:

free -h

你会惊喜地发现,原本开机占用两三百兆的系统,现在的 used 内存可能已经降到了 100MB 左右,甚至更低。这节省出来的 100 多兆内存,足够你多跑两三个有用的 Docker 容器了。