VPS 健康体检:CPU、内存、磁盘、网络四项自查一次讲清
你的 VPS 最近变慢了吗?页面打开转圈、SSH 登录卡顿、服务偶尔重启……很多问题不是“配置不够”,而是长期没人检查。本文用四个维度、十几条命令,给 VPS 做一次全面体检,照着做就能定位九成常见问题。
一、CPU:先看是谁在偷算力
拿到一台变慢的服务器,第一步永远是看负载:
uptime
top -bn1 | head -n 20
ps aux --sort=-%cpu | head -n 10
uptime 输出的三个数字是 1 分钟、5 分钟、15 分钟的平均负载。经验法则是:负载持续高于 CPU 核数,说明任务在排队;如果 15 分钟负载远高于 1 分钟负载,说明高峰已经过去,可以先松一口气。
再用 ps 按 CPU 占用排序,揪出真正的耗电大户。常见的“偷算力”元凶有三类:写了死循环的业务进程、被入侵后悄悄运行的挖矿程序、以及扎堆在同一分钟触发的定时任务。确认进程身份之前不要急着 kill,先用 cat /proc/<PID>/cmdline 看清它到底是谁。
二、内存:别等 OOM Killer 替你做决定
内存问题最怕的不是“用得多”,而是“用得不明不白”:
free -h
vmstat 1 5
ps aux --sort=-%mem | head -n 10
看 free -h 要盯住 available 这一列,它才是真正能用的余量;free 列很小不一定有问题,因为 Linux 会把空闲内存拿去做磁盘缓存。真正危险的信号是 available 长期接近 0,同时 swap 使用量持续攀升。
分清“缓存”与“泄漏”很关键:缓存会随压力自动释放,泄漏只会越长越大。如果某个进程的 RSS 每天稳定增长、重启后又从头开始涨,基本可以判定为内存泄漏,先重启服务止血,再去查代码。
应急方案是临时加一块 swap 文件,给系统留出喘息空间;但这只是止痛药,长期依赖 swap 会让磁盘 I/O 成为新的瓶颈。
三、磁盘:满盘是最常见的宕机原因
磁盘满了不会提前打招呼,数据库写不进、日志落不了盘、服务直接罢工:
df -h
df -i
du -sh /* 2>/dev/null | sort -rh | head -n 10
先看 df -h 的使用率,超过 85% 就要动手;再看 df -i,inode 耗尽时磁盘明明有空间却写不进文件,罪魁祸首往往是数不清的小文件。最后用 du 定位大户:失控的日志、越积越多的备份、Docker 叠加的镜像层、从来没清过的软件包缓存,都是常客。
清理只删自己认得出的东西:轮转前的旧日志、过期的备份、悬空的 Docker 镜像。系统目录和正在被写的文件不要碰,删错的代价比满盘更大。
四、网络:先分清是“丢包”还是“带宽不够”
访问慢先别急着升级带宽,定位问题再花钱:
ping -c 20 8.8.8.8
mtr --report 8.8.8.8
ss -tulpn
curl -o /dev/null -s -w '%{time_total}\n' https://example.com
ping 看丢包率和延迟抖动;mtr 能指出丢包发生在哪一跳,是本地出口、骨干网还是目标机房;ss 检查本机监听的端口,确认服务真的在监听、且没有被无关进程抢占端口。
如果延迟正常但下载慢,可能是带宽跑满或对端限速;如果延迟忽高忽低甚至丢包,升级带宽也救不了,先换网段或联系服务商。
五、每月 10 分钟体检清单
把上面四项浓缩成一张清单,每月跑一次:
| 检查项 | 命令 | 警戒线 |
|---|---|---|
| 负载 | uptime | 持续高于核数 |
| 内存余量 | free -h | available 接近 0 |
| 磁盘用量 | df -h | 超过 85% |
| inode | df -i | 超过 85% |
| 丢包 | ping -c 20 | 丢包率高于 1% |
| 异常进程 | ps aux | 不认识的常驻进程 |
把每次的结果简单记下来,下个月对比,趋势比单次数值更能说明问题:缓慢增长的内存占用、每月多几个百分点的磁盘用量,都是故障提前发出的信号。
写在最后
VPS 和人一样,小毛病拖着不管,最后都会变成大故障。CPU、内存、磁盘、网络四项检查加起来不过十分钟,却能帮你避开九成的突发宕机。把这张清单收进你的运维笔记,下个月同一天,再给它做一次体检。
- 点赞
- 收藏
- 关注作者
评论(0)