背景
线程数从几十变成几百是否异常,取决于请求量和运行阶段。没有正常基线,排障很容易只盯着某个绝对值。
核心判断
- 按同一进程版本记录 RSS、线程、FD、连接数与请求负载。
- 区分预热增长、稳定平台和持续线性增长。
- 采样时记录 PID 与启动时间,进程重启后不要拼接成一条曲线。
最小示例
下面保留核心逻辑;业务类型、调用入口和环境配置按项目补齐。
pid=$(pidof app); ps -o pid,ppid,stat,%cpu,%mem,rss,nlwp,etime -p "$pid"; ls "/proc/$pid/fd" | wc -l
边界与误区
pidof 可能返回多个 PID,示例适用于单实例进程;多实例请逐个采样。RSS 增加也可能是缓存增长,不能单凭它认定泄漏。
验证方式
保留空载、稳定负载和峰值三个阶段的快照。停止压测后观察资源是否回到可解释的平台,再决定是否进一步抓堆或分析 FD。
小结
围绕进程树、线程数、文件描述符、RSS 和连接数建立可比较的时间序列基线。