Swoole\Server->stats() 返回服务器运行状态数组,包含连接数、任务队列、Worker 请求及内存使用等关键指标,帮助监控服务健康与性能。

在 Swoole 中,Swoole\Server->stats() 方法用于获取服务器当前的运行状态统计信息。调用该方法后,会返回一个包含多个关键指标的数组,帮助开发者监控服务的健康状况和性能表现。
连接相关统计
这部分数据反映当前客户端连接的情况:
- connection_num:当前已建立的连接数,即活跃连接数量。
- accept_count:自服务器启动以来总共接受的连接请求数。
- close_count:自服务器启动以来关闭的连接总数。
任务处理信息(适用于Task模式)
如果你启用了 task 功能,以下字段可用于观察任务执行情况:
- tasking_num:当前正在处理的任务数量。
- task_queue_num:当前任务队列中的待处理任务数。
- task_push_count:已入队的任务总数。
- task_pop_count:已被工作进程取出处理的任务总数。
-
task_yield_count:任务让出次数(通过
swoole_server::yield())。 - task_peek_count:尝试查看队列头部任务但未取出的次数。
Worker 进程状态
反映工作进程的运行情况:
- worker_request_count:所有 Worker 处理的请求总数。
- request_count:HTTP 或其他协议下的总请求次数(与 worker_request_count 类似,具体取决于使用场景)。
- worker_exit_info:记录异常退出的 Worker 进程信息(如存在)。
内存与资源使用
部分版本还提供基础内存信息(依赖编译选项和系统支持):
其他运行指标
- start_time:服务器启动的时间戳(Unix 时间戳格式)。
- reload_count:热重启的次数。
- dispatch_count:收到的数据包分发次数。
- reactor_thread_num:Reactor 线程数量(只读信息,非实时变化)。
基本上就这些。实际返回字段可能因 Swoole 版本、编译配置以及是否启用 Task/SSL 等功能略有差异。建议在生产环境中定期调用 $server->stats() 并结合日志或监控系统进行分析,有助于及时发现连接泄漏、任务堆积等问题。










