<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>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                [TOC] ## 進程列表 統計客戶端機器`fpm`和`cli`進程內存占用和CPU占用,操作開啟關閉遠程調試,可批量開啟全部 ![](https://img.kancloud.cn/41/f1/41f1a5bb4041f339e15c61614e820f71_3184x1682.png) ## 遠程調試 對于以下四種工具,可以直接在服務端點擊按鈕遠程開啟后進行調試,無需修改代碼,重啟服務。開啟后發生請求,日志自動上傳服務端后臺進行分析展示。 >[danger] 對性能有所影響,開啟調試完畢后請及時關閉。 ## 手動埋點調試 >[info] **遠程調試和手動埋點二選一即可,不可重復開啟;** > 性能分析、內存泄漏、阻塞檢測都比較影響性能,建議在開發/測試環境中使用; > 如需在生產環境中使用,在使用后請盡快移除; > 注意不要同時開啟多個工具,例如代碼中同時 startXhprof() 和 startBlockCheck() 這樣會相互影響導致結果都不準確。 ### 性能分析 ![](https://img.kancloud.cn/ff/4d/ff4de64aefd3441814a44e1156c2e95a_4952x1864.png) 在客戶端需要進行性能分析的代碼中進行手動埋點 * 在代碼開頭添加 ```php startXhprof(); ``` * 在代碼結束添加 ```php endXhprof(); ``` 實例: ```php <?php // 開始 startXhprof(); function a($arg){ echo $arg; } a(123); // 結束 endXhprof(); ``` #### 分層分析表 ![](https://img.kancloud.cn/9d/88/9d883be828e608579246ca67e0cb5a28_4930x2602.png) #### 調用圖 客戶端會自動上報生成的日志信息,在后臺就可以看到所生成的性能瓶頸圖 ![](https://img.kancloud.cn/d5/5e/d55ee573db6833df80901d37e8ed6da0_3692x1604.png) 圖中會指出:函數;`Inc`函數運行時間,包括子函數;`Excl`函數運行時間,不包括子函數;`total calls`總調用次數; #### 火焰圖 ![](https://img.kancloud.cn/1d/c4/1dc4eb0b00b1d4c79777122cfab1cefd_2402x758.png) 增加了查看火焰圖的功能,火焰圖是性能分析的利器,并可以與用戶互動。 * 鼠標懸浮 火焰的每一層都會標注函數名,鼠標懸浮時會顯示完整的函數名、抽樣抽中的次數、占據總抽樣次數的百分比。 下面是一個例子: ![](https://img.kancloud.cn/53/97/5397c2bcdc00d27739a787aad04217e4_2398x752.png) * 點擊放大 在某一層點擊,火焰圖會水平放大,該層會占據所有寬度,顯示詳細信息。 ![](https://img.kancloud.cn/b9/fa/b9fa2d8399f674bc35ebd431bdaca8ac_2394x746.png) 左上角會同時顯示"Reset Zoom",點擊該鏈接,圖片就會恢復原樣。 * 搜索 按下 `Ctrl + F` 或者點擊圖中右上角的 `Search` 會顯示一個搜索框,用戶可以輸入關鍵詞或正則表達式,所有符合條件的函數名會高亮顯示。 ![](https://img.kancloud.cn/3c/07/3c07d078068216101b8dea1623beda4d_2396x748.png) ![](https://img.kancloud.cn/1b/76/1b76b35d80715fecf3e11ea8948e1d70_2380x750.png) ### 內存泄漏 >[danger] ??此功能僅支持 PHP71+ 版本,即PHP71、PHP72、PHP73,在`Swoole Tracker 3.0+`版本推薦使用[此工具](leak.md)檢測泄漏 在客戶端需要進行內存泄漏檢測的代碼中進行手動埋點 * 在代碼開頭添加 ```php startMemleakCheck(); ``` * 在代碼結束添加 ```php endMemleakCheck(); ``` 實例: ```php <?php // 開始 startMemleakCheck(); $redis; function a(){ global $redis; $redis = new \redis(); $result = $redis->connect('127.0.0.1', 6379); $redis->set("dasda",123123); var_dump($redis->get("dasda")); } a(); // 結束 endMemleakCheck(); ``` 會說明存在內存泄漏到文件行數,對應到鍵名,此處可能需要進行修改或者進行 `unset` ![](https://img.kancloud.cn/69/e6/69e697665455c5da2c58fb48cf37fc8c_4648x686.png) ### 阻塞檢測 >[warning] ??該檢測不追蹤fork的子進程。 在客戶端需要進行阻塞檢測的代碼中進行手動埋點 ![](https://img.kancloud.cn/37/06/3706c5b7b0197e1d37b82f686387e739_3344x1572.png) >[info] 反應堆解釋: > 如果使用swoole會產生較多的的epoll_wait、epoll_wait_old、epoll_pwait,等待事件發生。可選擇檢測時列表是否將此類信息過濾不進行展示。 * 在代碼開頭添加 ```php startBlockCheck(); ``` * 在代碼結束添加 ```php endBlockCheck(); ``` 默認檢測阻塞10ms的數據,大于這個值的系統調用就認為是阻塞的,如果要修改請編輯文件 `/opt/swoole/config/config_common.conf` ```json {"protocol":"TCP","block_time_out":"10"} ``` 修改 `block_time_out` 的值,修改后需要重啟NodeAgent ### 查看調用棧 方便定位 PHP 卡死問題,包括但不限于`死循環`、`sesstion_start函數導致卡死`、`flock函數導致卡死`、`TCP超時時間為-1`、`swoole協程的lock`等 ![](https://img.kancloud.cn/bf/07/bf07ab05d4edd90b9e8f7067eec9b1e9_2896x1234.png) 增加了調用棧的頁面,**開啟并且發生請求后**就會上報 ![](https://img.kancloud.cn/13/cd/13cd7e8a5f9d0cbaffb9c118776acc17_2658x1292.png)
                  <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>

                              哎呀哎呀视频在线观看