讲师中心 微信公众号
AI工具推荐 视频效率加速

怎么分析Workerman的运行状态?Status命令输出指标详解

风宇大大_2895

风宇大大_2895

发布时间:2026-05-24 13:57:47

|

802人浏览过

|

来源于php中文网

原创

必须紧盯connections、total_request、mem_usage、state四项:connections长期高位提示连接未释放;total_request停滞表明进程卡死;mem_usage缓升为内存泄漏,突增或因大对象未释放;state持续busy说明存在同步阻塞。

怎么分析workerman的运行状态?status命令输出指标详解

直接执行 php start.php status 就能拿到真实、低干扰的运行快照——它不 reload、不中断连接,只读共享内存里的统计值,是线上唯一可信的状态入口。

status 命令输出里哪些字段必须盯紧?

别被满屏字段带偏,重点关注这四个:

  • connections:当前活跃连接数。长期接近 Worker::$maxConnection(比如设了 1000,却常驻 950+),说明连接释放卡住,或客户端心跳缺失没触发 onClose
  • total_request:该 worker 累计处理请求数。若停滞不动,而其他 worker 正常增长 → 很可能卡在业务回调里(比如未 catch 的异常、死循环、await 未 resolve)
  • mem_usage:单位 MB。缓慢爬升(如 20MB → 60MB 持续两小时)大概率是内存泄漏;突然跳变(15MB → 80MB)往往对应大对象未 unset 或全局缓存无限写入
  • state:值为 busy 且持续 >30 秒,说明该进程正被同步阻塞(如 file_get_contents、PDO 查询没加超时、curl 同步调用)

为什么 status 显示 “no pid file” 或报 socket 连接失败?

这不是命令错了,而是通信链路断了。常见原因:

  • 服务没用 -d 守护进程模式启动 → php start.php start -d 补上再试
  • /tmp/workerman.*.status 文件残留:stop 后又 start -d,旧 socket 没清理干净 → 手动 rm /tmp/workerman.*.status*
  • 权限不一致:root 启动的服务,非 root 用户执行 status → 统一用业务用户启动,或改 Worker::$pidFile 路径权限
  • Workerman 版本太老(status → 改用 php start.php --status

connections 命令比 status 更细,但容易误用

php start.php connections 不是 status 的增强版,而是另一类诊断工具,只在 TCP/UDP Worker 中生效(HTTP/WebSocket 默认不启用连接级统计)。

  • 要让它输出连接时间、缓冲区等细节,得在 Worker 初始化时加:$worker->connection_class = \Workerman\Connection\TcpConnection::class;
  • 输出里大量 send_queue_size > 0 且 last_send_time 长期不更新 → 客户端已断连,但服务端因心跳缺失或 Worker::$connectionTimeout 过大还没检测到
  • 高峰期慎用:输出可能超万行,主进程会短暂卡住 → 先在低峰跑一次,再用 head -50 或 grep 过滤
  • 看到一堆 close_wait 状态?检查 onClose 回调里有没有同步 IO(比如发 HTTP 请求、写日志文件),这些操作会拖慢连接释放

真正难的不是看懂数字,而是把 connections 和 total_request 的异常变化,跟代码里某次 yield 卡住、某处 file_put_contents 没加锁、某个全局数组没清空这些细节对上号——状态命令只报“哪里疼”,不告诉你“为什么疼”。

热门AI工具

更多
豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

PixPix
PixPix Hot

PixPix是一款面向电商视觉生产的AI商品图生成工具。

Atoms
Atoms Hot

Atoms是一款AI智能体工具,第一支自动构建真实业务的 AI 团队。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

PixTV
PixTV Hot

PixTV是一款面向AIGC内容创作的AI视频生成工具。

音述AI
音述AI Hot

一款AI音频处理工具,主要用于音述AI是一个以“用声音述说故事”为核心的 AI 音乐创作与声音分享社区,适合需要提升相关任务效率的用户。

立刻MV
立刻MV Hot

立刻MV是一款AI文本写作工具,AI 音乐视频(MV)创作工具。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

小橡皮AI

一款AI工具,主要用于小橡皮一键去AI味,将机器味重的内容改得更有活人感,防止因为 AI 内容被平台打上 AI 标签,以及限流,适合需要提升相关任务效率的用户。

相关专题

更多
Workerman安装配置教程
Workerman安装配置教程

Workerman安装配置教程专题提供Workerman安装配置、WebSocket开发、TCP通信、异步编程、高并发服务搭建与PHP实时通信开发教程。

206

2026.05.20

Workerman实时通信与长连接开发教程
Workerman实时通信与长连接开发教程

WWorkerman实时通信与长连接开发教程聚合实时通信、聊天室、长连接、消息推送、AI流式输出等Workerman高并发开发内容。

222

2026.05.20

Workerman异步通信与TCP服务器开发
Workerman异步通信与TCP服务器开发

Workerman异步通信与TCP服务器开发专题整理Workerman异步通信、TCP服务、HTTP服务、WebSocket开发与高并发PHP服务器教程。

227

2026.05.20

Vite 项目如何打包和部署
Vite 项目如何打包和部署

Vite项目打包部署专题汇集生产构建、产物预览、输出目录、资源路径、Nginx与GitHub Pages部署及常见白屏和路由404问题的已审核文章,帮助读者完成上线流程。

100

2026.10.28

Vite 如何搭配 Vue.js
Vite 如何搭配 Vue.js

Vite搭配Vue.js专题汇集创建Vue 3项目、配置开发环境、路径别名、Vue插件、代理、多环境构建与调试的已审核文章,帮助读者完成从初始化到日常开发的配置。

60

2026.10.28

Vite 项目目录怎么看
Vite 项目目录怎么看

Vite项目目录专题汇集入口文件、src源码、public静态资源、路径别名、项目根目录和构建输出目录相关的已审核文章,帮助读者理解各文件夹的用途与引用方式。

220

2026.10.28

Gradle插件开发入门教程
Gradle插件开发入门教程

本专题介绍Gradle插件开发的基本流程,涵盖插件类编写、自定义任务注册、扩展参数设计和插件应用方法,帮助你理解插件如何组织构建逻辑,减少多个项目之间的重复配置。

140

2026.10.22

Gradle Wrapper配置教程
Gradle Wrapper配置教程

本专题介绍Gradle Wrapper的基本作用,涵盖文件组成、生成方法、版本配置和任务调用,帮助你理解项目如何使用指定的Gradle版本,减少不同开发环境带来的构建差异。

120

2026.10.22

Golangci-lint检查器使用教程
Golangci-lint检查器使用教程

本专题整理Golangci-lint常用Linters的用途与配置方法,覆盖错误处理、无效代码、安全、复杂度、命名和依赖检查,帮助项目合理选规则。

80

2026.10.22

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Webman中文手册
Webman中文手册

共0课时 | 0人学习

Workerman官方手册
Workerman官方手册

共0课时 | 0人学习

ThinkPHP5.1完全开发手册
ThinkPHP5.1完全开发手册

共0课时 | 0人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn