可使用htop实时监控thinkphp进程:安装后按f4搜索php-fpm/artisan等关键词,f6按%mem排序,盯住rss持续上涨且运行超30分钟的进程,结合ppid、cmd和/proc/[pid]/cmdline验证是否为cli常驻进程,并查日志确认异常。

如果您在Linux服务器上运行ThinkPHP应用,需要快速识别并持续观察其后台PHP进程的资源行为,则可借助htop这一交互式进程查看器进行实时盯控。以下是具体操作步骤:
一、安装并启动htop
htop并非CentOS或Ubuntu系统默认预装工具,需手动安装后方可使用。安装过程会赋予您更灵敏、可排序、可过滤的进程视图能力。
1、执行命令安装EPEL源(仅CentOS 7/8):sudo yum install epel-release
2、安装htop:sudo yum install htop(CentOS)或sudo apt install htop(Ubuntu)
3、启动htop:htop
二、定位ThinkPHP相关进程
ThinkPHP通常以php-fpm worker、CLI脚本(如artisan、queue:work)或常驻进程形式运行,需通过关键词精准筛选,避免被大量无关php进程干扰。
1、在htop界面中按F4键进入搜索模式
2、输入关键词:php-fpm、artisan、queue:work或app.php
3、按Enter确认,界面将高亮匹配进程行
4、按Space键锁定该行——它将始终固定于屏幕顶部,滚动不消失
三、按内存占用排序并盯住RSS值
RSS(Resident Set Size)代表进程实际占用的物理内存大小,是判断内存泄漏的核心指标;VIRT值含虚拟映射,不可作为泄漏依据。
1、在htop界面中按F6打开排序菜单
2、选择PERCENT_MEM并回车,使进程按内存占用百分比降序排列
3、找到RSS列数值持续高于300MB且运行时间(TIME+列)超过30分钟的进程
4、持续观察其RSS值变化:若每分钟稳定上升2MB及以上,且无明显业务请求激增,则存在泄漏风险
四、结合PPID与CMD字段交叉验证
单一RSS增长不足以定性为泄漏,必须结合进程启动方式和父进程关系判断其是否为长期驻留型服务进程。
1、用方向键选中目标进程,按F5展开进程树视图
2、查看PPID列:若值为1(systemd/init)或php-fpm master进程PID,说明该进程由守护服务拉起
3、查看CMD列:确认是否含php artisan queue:work、php /www/wwwroot/api/app.php等CLI常驻命令
4、若CMD中含-c或--configuration参数,基本可判定为CLI模式运行,静态变量堆积风险极高
五、配合日志与进程详情强化判断
htop提供进程基础状态,但无法反映内部内存分配逻辑。需同步调取进程级上下文信息,排除误判。
1、记下可疑进程PID,在终端执行:cat /proc/[PID]/cmdline | tr '\0' ' '
2、执行:ps -o pid,ppid,etime,comm,args -p [PID],完整获取启动时间、父进程、完整命令行
3、检查ThinkPHP runtime/log/ 目录下app.log与error.log,确认是否存在未捕获异常、重复初始化或循环引用报错
4、对queue:work类进程,额外检查runtime/queue/failed目录是否有持续堆积的失败任务
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











