#41943 [Fbk->Opn]: Soap Call causes CPU to go 100%
ID: 41943 User updated by: simon at connexon dot com Reported By: simon at connexon dot com -Status: Feedback +Status: Open Bug Type: SOAP related Operating System: Windows Server 2003 PHP Version: 5.2.3 Assigned To: dmitry New Comment: Hi dmitry, were you using apache or IIS under windows? We are using IIS. Perhaps it is the source of the problem... I will be doing more testing on this later this week. Please let me know. Thank you. Previous Comments: [2007-07-25 06:25:38] [EMAIL PROTECTED] I am not able to reproduce this. I created a simple client that accesses server over HTTPS: "https://tpl/~dmitry/soap/examples/server4.php";, "uri" => "test://")); echo $client->getQuote("ibm"); ?> and server that sleeps for 15 seconds: 98.42 ); function getQuote($symbol) { global $quotes; sleep(15); return $quotes[$symbol]; } //ob_start("ob_gzhandler"); $server = new SoapServer("stockquote1.wsdl"); $server->addFunction("getQuote"); $server->handle(); ?> and I don't see any CPU load: [EMAIL PROTECTED] CGI-DEBUG]$ time sapi/cli/php /home/dmitry/public_html/soap/examples/client8.php 98.42 real0m15.105s user0m0.006s sys 0m0.033s I also run the same client on Windows looking into "perfmon" and CPU load was about 0% during waiting. Please provide a COMPLETE reproducable case (client that access external SOAP server, or local client and srver), if you like me to fix the behavior. [2007-07-13 12:35:25] simon at connexon dot com How do we do traces? however I was able to isolate the problem. It's SSL that is causing CPU spikes. I ran a soap location with HTTP://, then the CPU would "idle" while it's waiting for a response, however using HTTPS:// the CPU really goes nuts! Is this a problem in the core of PHP itself? [2007-07-11 07:08:46] [EMAIL PROTECTED] Could you plese post strace of process or/and call-trace of PHP during it eats CPU. [2007-07-09 20:13:37] simon at connexon dot com "aaa"); $this->result = $this->handle->__soapCall("ValA", $ws_params); if ($debug) $this->displayMessageInfo(); $this->handleFault($this->result); ?> When the code gets to "$this->handle->__soapCall..." we recognize the fact that when PHP is waiting for a soap response the CPU is blocked. However this is not a good behavior as of we need the CPU to do other things also. [2007-07-09 19:45:35] [EMAIL PROTECTED] Thank you for this bug report. To properly diagnose the problem, we need a short but complete example script to be able to reproduce this bug ourselves. A proper reproducing script starts with , is max. 10-20 lines long and does not require any external resources such as databases, etc. If the script requires a database to demonstrate the issue, please make sure it creates all necessary tables, stored procedures etc. Please avoid embedding huge scripts into the report. The remainder of the comments for this report are too long. To view the rest of the comments, please view the bug report online at http://bugs.php.net/41943 -- Edit this bug report at http://bugs.php.net/?id=41943&edit=1
#41943 [Fbk->Opn]: Soap Call causes CPU to go 100%
ID: 41943 User updated by: simon at connexon dot com Reported By: simon at connexon dot com -Status: Feedback +Status: Open Bug Type: SOAP related Operating System: Windows Server 2003 PHP Version: 5.2.3 Assigned To: dmitry New Comment: How do we do traces? however I was able to isolate the problem. It's SSL that is causing CPU spikes. I ran a soap location with HTTP://, then the CPU would "idle" while it's waiting for a response, however using HTTPS:// the CPU really goes nuts! Is this a problem in the core of PHP itself? Previous Comments: [2007-07-11 07:08:46] [EMAIL PROTECTED] Could you plese post strace of process or/and call-trace of PHP during it eats CPU. [2007-07-09 20:13:37] simon at connexon dot com "aaa"); $this->result = $this->handle->__soapCall("ValA", $ws_params); if ($debug) $this->displayMessageInfo(); $this->handleFault($this->result); ?> When the code gets to "$this->handle->__soapCall..." we recognize the fact that when PHP is waiting for a soap response the CPU is blocked. However this is not a good behavior as of we need the CPU to do other things also. [2007-07-09 19:45:35] [EMAIL PROTECTED] Thank you for this bug report. To properly diagnose the problem, we need a short but complete example script to be able to reproduce this bug ourselves. A proper reproducing script starts with , is max. 10-20 lines long and does not require any external resources such as databases, etc. If the script requires a database to demonstrate the issue, please make sure it creates all necessary tables, stored procedures etc. Please avoid embedding huge scripts into the report. [2007-07-09 19:39:46] simon at connexon dot com Description: We've been using soap for a while now and noticed that when we send a soap request and it waits for a response, PHP goes in a sort of loop and takes CPU load. Our average waiting time is 4 seconds. A soap call once in a while is ok, because it doesn't take too much CPU overall. But we noticed that the more we grow, the more CPU it takes, to a point where we reach often 100% CPU if we do a loop of soap calls. (All that caused by the waiting time of the soap call!!!). Reproduce code: --- x Expected result: Would it be possible that PHP goes into an idle mode when it waits for a soap response instead of taking all the CPU ressources? Actual result: -- CPU goes crazy when we do too many soap calls in a row (we can do maximum of 4 soap calls at once, else it would overload the server). -- Edit this bug report at http://bugs.php.net/?id=41943&edit=1
#41943 [Fbk->Opn]: Soap Call causes CPU to go 100%
ID: 41943 User updated by: simon at connexon dot com Reported By: simon at connexon dot com -Status: Feedback +Status: Open Bug Type: Performance problem Operating System: Windows Server 2003 PHP Version: 5.2.3 New Comment: "aaa"); $this->result = $this->handle->__soapCall("ValA", $ws_params); if ($debug) $this->displayMessageInfo(); $this->handleFault($this->result); ?> When the code gets to "$this->handle->__soapCall..." we recognize the fact that when PHP is waiting for a soap response the CPU is blocked. However this is not a good behavior as of we need the CPU to do other things also. Previous Comments: [2007-07-09 19:45:35] [EMAIL PROTECTED] Thank you for this bug report. To properly diagnose the problem, we need a short but complete example script to be able to reproduce this bug ourselves. A proper reproducing script starts with , is max. 10-20 lines long and does not require any external resources such as databases, etc. If the script requires a database to demonstrate the issue, please make sure it creates all necessary tables, stored procedures etc. Please avoid embedding huge scripts into the report. [2007-07-09 19:39:46] simon at connexon dot com Description: We've been using soap for a while now and noticed that when we send a soap request and it waits for a response, PHP goes in a sort of loop and takes CPU load. Our average waiting time is 4 seconds. A soap call once in a while is ok, because it doesn't take too much CPU overall. But we noticed that the more we grow, the more CPU it takes, to a point where we reach often 100% CPU if we do a loop of soap calls. (All that caused by the waiting time of the soap call!!!). Reproduce code: --- x Expected result: Would it be possible that PHP goes into an idle mode when it waits for a soap response instead of taking all the CPU ressources? Actual result: -- CPU goes crazy when we do too many soap calls in a row (we can do maximum of 4 soap calls at once, else it would overload the server). -- Edit this bug report at http://bugs.php.net/?id=41943&edit=1