"顶级队列中的请求之间的差异"和#34;队列中的请求"在Phusion Passenger中

时间:2014-04-12 01:33:27

标签: nginx passenger

我有一个运行nginx和phusion乘客版本4.0.37的设置

是否有人知道"顶级队列中的请求"和#34;队列中的请求"何时运行sudo passenger-status?在什么情况下这些数字会分歧?我看到的情况是"队列中的请求"变得很大(因为阻塞线程的套接字或网络问题),但是#34;顶级队列中的请求"总是保持在0,这告诉我可能有特定于应用程序的队列和顶级队列的单独概念。但后来我不了解顶级队列在什么情况下发挥作用。

1 个答案:

答案 0 :(得分:3)

Phusion Passenger的内部状态由一个组列表(代表应用程序)组成,每个组都包含一个进程列表(代表应用程序进程)。在为应用程序生成第一个进程时,Phusion Passenger必须创建并初始化Group数据结构,运行挂钩等。由于这涉及从磁盘读取和运行进程,因此可能需要花费任意时间。在此期间,所述请求以及针对该应用程序的任何新请求都将放入顶级队列,直到该组完成初始化。

每个组都有自己的队列。初始化组后,来自顶级队列的相关请求将移至组本地队列。

这就是顶级队列通常为空的原因。

所有组本地队列的值的总和加上顶级队列的值是排队的请求的总数。一般来说,如果它们长时间不为零,则表示不好。