PHP Soap客户端调用CPU使用率
我为这个问题挣扎了几个月,所以我决定寻求帮助。在我们当前的项目中,我们使用几个Web服务与外部服务器通信。其中一个处理大量数据,soap调用需要相当长的时间。有些方法调用最多需要5-10秒 我们可以在这样的时候处理,问题出在别处。我们使用非常强大的机器来承载我们的应用程序(专用的、6个氙气处理器、16 gb ram内存)。当我们调用外部WS,服务器监听响应时,CPU使用峰值是巨大的 我已经在一些较弱的机器上进行了测试,看起来这样的进程可以使用高达100%的单核使用率,这显然会极大地影响性能 我们的应用程序基于PHP Zend框架(版本1)。作为Soap客户端,我们使用Zend_Soap_客户端 我很感激任何关于如何优化这一点的建议。 先谢谢你 编辑:PHP Soap客户端调用CPU使用率,php,performance,web-services,zend-framework,soap,Php,Performance,Web Services,Zend Framework,Soap,我为这个问题挣扎了几个月,所以我决定寻求帮助。在我们当前的项目中,我们使用几个Web服务与外部服务器通信。其中一个处理大量数据,soap调用需要相当长的时间。有些方法调用最多需要5-10秒 我们可以在这样的时候处理,问题出在别处。我们使用非常强大的机器来承载我们的应用程序(专用的、6个氙气处理器、16 gb ram内存)。当我们调用外部WS,服务器监听响应时,CPU使用峰值是巨大的 我已经在一些较弱的机器上进行了测试,看起来这样的进程可以使用高达100%的单核使用率,这显然会极大地影响性能 我们
try {
$this->client = new SoapExt_Client($this->config->wsdl,
array(
'cache_wsdl' => WSDL_CACHE_BOTH,
'encoding' => $this->config->encoding,
'soap_version' => SOAP_1_1,
'classmap' => array(
[...]
),
'features' => SOAP_SINGLE_ELEMENT_ARRAYS
)
);
$this->client->__setTimeout((int) $this->config->timeout);
} catch (Exception $exc) {
throw new My_Exception_System(My_Codes::ERROR_WS_CONNECTION_FAILED, array(__CLASS__));
}
$result = $this->client->$methodName($params);
所以基本上这是一个简单的Soap调用。当脚本等待远程服务器重新部署时,CPU使用率会出现峰值
不幸的是,如果无法访问产生使用率峰值的代码,就没有什么可以告诉您的了。什么Web服务器?记住PHP不是多线程的,不能利用额外的内核。任何一个php请求都不能使用多个核心。您是否使用类似xdebug的东西对其进行了分析?您是否使用带有xs:import的WSDL?有一个错误会导致无休止的循环。Ty如需评论,将尽快更新我的问题,并提供一些其他详细信息。