<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                # 查看運行狀態 # 查看運行狀態 運行 ```php start.php status``` 可以查看到WorkerMan的運行狀態,類似如下: ```php ---------------------------------------GLOBAL STATUS-------------------------------------------- Workerman version:3.0.3 PHP version:5.3.29-1~dotdeb.0 start time:2015-02-21 18:05:47 run 86 days 22 hours load average: 0, 0, 0 3 workers 10 processes worker_name exit_status exit_count TodpoleGateway 0 0 TodpoleBusinessWorker 0 4 TodpoleBusinessWorker 9 1 WebServer 0 2 ---------------------------------------PROCESS STATUS------------------------------------------- pid memory listening worker_name connections total_request send_fail timers 936 2.15M Websocket://0.0.0.0:8585 TodpoleGateway 13 355 0 0 937 2.03M Websocket://0.0.0.0:8585 TodpoleGateway 5 181 0 0 938 2M Websocket://0.0.0.0:8585 TodpoleGateway 4 171 0 0 939 2.03M Websocket://0.0.0.0:8585 TodpoleGateway 5 177 0 0 948 2.15M none TodpoleBusinessWorker 4 32 0 0 949 2.16M none TodpoleBusinessWorker 4 54 0 0 953 2.16M none TodpoleBusinessWorker 4 50 0 0 957 2.15M none TodpoleBusinessWorker 4 53 0 0 954 1.84M http://0.0.0.0:8686 WebServer 0 61 0 0 955 1.84M http://0.0.0.0:8686 WebServer 1 59 0 0 ``` ## 說明 ### GLOBAL STATUS 從這以欄中我們可以看到 WorkerMan的版本```version:3.0.3``` 啟動時間 ```2015-02-21 18:05:47```,運行了```run 86 days 22 hours``` 服務器負載 ```load average: 0, 0, 0``` ```3 workers```(3種進程,包括ChatGateway、ChatBusinessWorker、WebServer進程) `10 processes`(共10個進程) `worker_name`(worker進程名) `exit_status`(worker進程退出狀態碼) `exit_count`(該狀態碼的退出次數) 一般來說exit\_status為0表示為正常退出,如果為其它值,代表進程是異常退出的,并產生一條類似```WORKER EXIT UNEXPECTED```錯誤信息,錯誤信息會記錄到[Worker::logFile](315140)指定的文件中。 **常見的exit\_status及其含義如下:** - 0:表示正常退出,運行reload平滑重啟后會出現值為0的退出碼,是正常現象。注意在程序中調用exit或die也會導致退出碼為0,并產生一條```WORKER EXIT UNEXPECTED```錯誤信息,workerman中不允許業務代碼調用exit或者die語句。 - 9:表示進程被SIGKILL信號殺死了。這個退出碼主要發生在stop以及reload平滑重啟時,導致這個退出碼的原因是由于子進程沒有在規定時間內響應主進程reload信號(例如mysql、curl等長時間阻塞等待或者業務死循環等),被主進程強制使用SIGKILL信號殺死。注意,當在linux命令行中使用kill命令發送SIGKILL信號給子進程也會導致這個退出碼。 - 65280:導致這個退出碼的原因是業務代碼有致命錯誤,例如調用了不存在的函數、語法錯誤等,具體錯誤信息會記錄到[Worker::logFile](315140)指定的文件中,也可以在[php.ini](http://php.net/manual/zh/ini.list.php)中[error\_log](http://php.net/manual/zh/errorfunc.configuration.php#ini.error-log)指定的文件中(如果有指定的話)找到。 - 64000:導致這個退出碼的原因是業務代碼拋出了異常,但業務沒有捕獲這個異常,導致進程退出。如果workerman以debug方式運行時異常調用棧會打印到終端,daemon方式運行時異常調用棧會記錄到[Worker::stdoutFile](315138)指定的文件中。 ## PROCESS STATUS pid:進程pid memory:該進程當前占用內存(不包括php自身可執行文件的占用的內存) listening:傳輸層協議及監聽ip端口。如果不監聽任何端口則顯示none。參見[Worker類構造函數](315128l) worker\_name:該進程運行的服務服務名,見[Worker類name屬性](315132) connections:該進程當前有多少個TCP連接對象實例。注意:每個客戶端連接是一個[TcpConnection](315157)連接對象實例,同時每個[AsyncTcpConnection](315173)連接也是一個連接對象實例,所以connections的計數不一定與客戶端連接數相等,例如GatewayWorker中Gateway進程的connections計數包含了客戶端連接數和Gateway與Worker內部通訊連接數。 total\_request:表示該進程從啟動到現在一共接收了多少個請求。這里的請求數不僅包含客戶端發來的請求,也包含Workerman內部通訊請求,例如GatewayWorker架構里Gateway與BusinessWorker之間的通訊請求。 send\_fail:該進程向客戶端發送數據失敗次數,失敗原因一般為客戶端連接斷開,此項不為0一般屬于正常狀態,參見[手冊常見問題send\_fail原因](315284) timers:該進程活動的定時器數量(不包括被刪除的定時器以及已經運行過的一次性定時器)。注意:這個統計需要workerman版本>=3.4.7才支持 ## 原理 status腳本運行后,主進程會向所有worker進程發送一個```SIGUSR2```信號,隨后status腳本進入100毫秒的睡眠階段,以便等待各個worker進程狀態統計結果。這時空閑的worker進程收到```SIGUSR2```信號后會立刻向特定的磁盤文件寫入自己的運行狀態(連接數、請求數等等),而正在處理業務邏輯的worker進程,則會等待業務邏輯處理完畢才會去寫入自己的狀態信息。sleep100毫秒后,status腳本開始讀取磁盤中的狀態文件,并展示結果到控制臺。 ## 注意 status 時可能會發現顯示的進程數量少于實際數量,原因是由于進程忙于處理業務(例如業務邏輯長時間阻塞在curl或者數據庫請求上),導致worker進程無法及時(100毫秒內)響應status命令,來不及將自己的狀態信息寫入磁盤,status腳本自然統計不到對應worker的進程,也就無法及時展示在status結果中。 出現這種問題需要排查業務代碼,看哪里導業務致長時間阻塞,并且評估阻塞耗時是否在預期內。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看