宋歌和木 · 写作台

AI 工程师的实战记录:技术、工程、自动化、大模型、agent、部署。每天更新。

300 多个服务挤在一台机器上,我怎么知道谁在真干活

公众号体 2026-10-26 03:10#运维#进程#排查#Linux

我有一台机器

上面跑着三百多个服务。

不是大厂机房

就是我自己的一台服务器。

每次登上去

敲个 ps

刷出来的列表

长得像春运候车室。

出问题是哪天呢

网站突然卡了。

我心里有数

肯定有进程

在背后偷偷吃资源。

可三百多个名字

谁知道是谁。

top 看一眼

CPU 占用高的

是一个我不认识的编号。

杀吧

不敢。

万一是数据库呢

万一是别的东西拉起来的呢。

杀错一个

可能半个摊子都塌。

那天我把这事

当成一次正经排查来做。

后来我管它叫

进程取证。

第一步

先弄清楚

每个进程是谁生的。

linux 里每个进程

都记着自己的爹

在 /proc 下面

翻它的状态文件就能看到。

有的进程

爹是 systemd

那是正经登记过的。

有的进程

爹已经死了

它成了孤儿

被收养到 1 号进程底下。

这种

多半是当初启动它的脚本

跑完就跑了

没人管它的后事。

我第一遍筛

就筛出十几个这样的。

第二步

看它挂在哪个 cgroup 里。

这一步最关键。

容器里的进程

和宿主机自己的进程

分属不同的 cgroup

路径一读就清楚。

我那个可疑的高占用进程

一查

是个孤儿

不在任何我认识的容器里。

它不是谁的重要组件

就是一段忘了退出的残留。

第三步

看它的启动时间和命令行。

/proc 里

进程的启动时间

打开的文件

执行时的完整命令

都摊在那儿。

启动时间一对比

我心里就有数了。

它是某次我测试的时候

随手跑起来的

测试早忘了

它还活着。

说到这儿 我把当时的时间线捋一捋。 那天下午四点 网站卡住。 四点十分 我登上服务器 top 一看 有个进程 吃了快两个核心。 四点半 我查完它的爹 发现是孤儿。 五点 我去看它的 cgroup 不在任何容器里。 五点二十 我读它的命令行 确认是三个月前 一次测试的残留。 前后一个多小时 没装任何新工具。 全程用的 都是系统本来就有的东西。

为什么不上监控平台 我也想过。 一套监控 要部署 要告警规则 要人盯着面板。 我不是不能装 是先想清楚 我到底缺什么。 我缺的不是图表 是名册。 三百多个进程 我连它们是谁生的 住哪个屋 都不知道 画再多曲线 也是看客 不是管家。

中途我也犯过错。

第一次筛孤儿进程的时候

我顺手把一个

爹是 1 号的进程杀了。

结果一个定时任务

当场就哑了。

后来才明白

有些常驻服务

本来就是被收养的

爹是 1 号不代表它流浪。

从那以后我给自己加了条规矩

判据不到三条

不动手。

爹是谁

挂在哪个 cgroup

命令行写的什么

三条对上了

才下手。

那天排查完

我把三百多个进程

分成了三类。

有主的

登记在 systemd 或容器里

该干嘛干嘛。

流浪的

爹死了

挂在别人屋檐下。

装死的

占着内存

半年没干活。

第一类占大头 两百多个。 第二类我挑出十几个 逐个确认 没有一个是正经服务 全清了。 第三类最隐蔽 有一个进程 占着一百多兆内存 启动时间是半年前 它打开的文件 早就删掉了 它自己还攥着不放。 这种东西 监控图上根本看不见 只有点名的办法 才能逮到。

清完之后

那台机器安静多了。

卡顿再没出现过。

后来我想明白一件事。

服务器和人一样

住的人多了

光靠喊名字

是点不清名的。

得有一套

能落纸面的判据。

落点给你。

你要是也管着一台

跑了很多东西的机器

不用装什么监控平台

三条判据就够了。

第一

查爹

/proc 下面

每个进程的父进程

一翻就知。

第二

查 cgroup

分清它是容器里的

还是宿主机上的。

第三

查启动时间和完整命令行

对上它出生那天

你干过什么。

三条对齐再动手

一条不对就再看看。

三条对齐再动手 一条不对就再看看。 查完别急着删 先把这三条判据的输出 存一份下来。 我每次清理前 都会把进程名册 落成一个文本文件 放在一个固定目录里 带日期。 过一个月再看 谁新来了 谁悄悄走了 一目了然。 这台机器的户口本 就这么攒起来了。

我后来把这个方法

用到了我所有的机器上。

每次大扫除

先取证

再清理。

任何时候做任何事情

一定全心全意。

哪怕只是认清

三百个进程里

谁在替你干活

谁在装睡

也要一条一条

查到有据。

是为记

关于怎么不用任何花哨工具

只靠系统自己留下的痕迹

把一台机器

点清名册。

← 返回列表