如何监控 cURL 调用

如何监控 cURL 调用

我有一个基于 PHP 的 CMS,它向服务提供商(基于 Java 的 ECM(企业内容管理),当前与我的 PHP 位于同一台服务器)发出请求并将响应插入到 mysql。

最初以良好的速度开始,然后慢慢降级到原始数据提取和插入速度的十分之一,我使用记录数来检查这一点。我无法找出降级的原因,需要找出 cURL 请求是否在生成响应(作为 XML)的 ECM 端延迟,或者响应何时返回到我的 PHP 端。服务器负载与数据库(mysql)没有变化,我有自己的理由相信这不是数据库优化问题。

我真正想知道的是,是否有某种方式可以跟踪正在发出的请求,它们何时到达 ECM,何时给出响应以及何时再次到达 PHP(每个 cURL 调用活动的总和)。我检查了我的 apache 访问日志,看它们是否被记录为GETPOST请求,但找不到它们。代码级别的唯一选项是设置详细,但我不确定结果有多大用处。因此希望了解相同的可能选项。

答案1

您可以对进程进行数据包捕获(使用 tcpdump 或 wireshark),然后对其进行分析以查看每个 http 事务需要多少时间。请记住,您还可以对 127.0.0.1 接口进行数据包转储,因为如果请求是发送到本地主机,则可能需要这样做。

为了查看 curl 请求,您可以为 curl 请求提供特定的用户代理,然后在 apache 日志中查找来自该用户代理的请求。

相关内容