Server->stats

得到当前Server的活动TCP连接数,启动时间,accpet/close的总次数等信息。

array Server->stats();

返回的结果数组示例:

array (
  'start_time' => 1409831644,
  'connection_num' => 1,
  'accept_count' => 1,
  'close_count' => 0,
);
  • start_time 服务器启动的时间
  • connection_num 当前连接的数量
  • accept_count 接受了多少个连接
  • close_count 关闭的连接数量
  • tasking_num 当前正在排队的任务数

stats()方法在1.7.5后可用

请求数量

  • request_count => 1000, Server收到的请求次数
  • worker_request_count => 当前Worker进程收到的请求次数

消息队列状态

1.8.5版本增加了Task消息队列的统计数据。

array (
  'task_queue_num' => 10,
  'task_queue_bytes' => 65536,
);
  • task_queue_num 消息队列中的task数量
  • task_queue_bytes 消息队列的内存占用字节数

协程相关

array (
  'coroutine_num' => 10,
);
  • 当前协程数量coroutine_num

  • 落落

    要是能返回空闲的 taskWorker 数量就好了,虽然自己用 Swoole\Atomic 或者 Redis 之类的也能实现。

  • dawn

    测试结果:request_count和worker_request_count分别是实际接收的请求次数-1

  • 晚安

    我现在是4.2.3版本,使用 stat()方法的时候得到的结果是这样的:

    array(8) {
      ["start_time"]=>
      int(1540373761)
      ["connection_num"]=>
      int(1)
      ["accept_count"]=>
      int(1)
      ["close_count"]=>
      int(0)
      ["tasking_num"]=>
      int(0)
      ["request_count"]=>
      int(1)
      ["worker_request_count"]=>
      int(0)
      ["coroutine_num"]=>
      int(0)
    }
    

  • 晚安

    刚才输入错误应该是 stats() 方法,task_queue_num,task_queue_bytes这两个去掉了?