Php
如何監控 cURL 呼叫
我有一個基於 PHP 的 CMS,它向服務提供商(一個基於 java 的 ECM(企業內容管理)目前與我的 PHP 位於同一伺服器中)發出請求,並將響應插入到 mysql。
最初以良好的速度開始的速度緩慢下降到原始數據獲取和插入速度的 1/10,我使用記錄數進行檢查。我在找出降級的原因時遇到了麻煩,需要找出 cURL 請求是否在生成響應(作為 XML)的 ECM 端延遲,或者當響應返回到我的 PHP 端時。數據庫(mysql)的伺服器負載沒有變化,我有自己的理由相信它不可能是數據庫優化問題。
我真正想做的是知道是否有辦法跟踪正在發出的請求,當它們到達 ECM 時,何時給出響應以及何時再次到達 PHP(每個 cURL 呼叫活動的總和)。我檢查了我的 apache 訪問日誌,如果它們被記錄為請求
GET
,POST
但找不到它們。程式碼級別的唯一選擇是設置詳細資訊,儘管我不確定結果會有多大用處。因此希望知道相同的可能選項。
您可以對程序進行數據包擷取(使用 tcpdump 或 wireshark),稍後對其進行分析以查看每個 http 事務需要多少時間。請記住,您還可以為 127.0.0.1 介面進行數據包轉儲,因為如果對 localhost 進行請求,則可能需要它。
為了查看 curl 請求,您可以為 curl 請求提供特定的使用者代理,然後在 apache 日誌中查找來自該使用者代理的請求。