[PHP-users 31507] SOAPクライアントからウェブサービスへのSSL接続が遅い

Higuchi Atsushi rmitcs @ gmail.com
2007年 2月 21日 (水) 12:29:41 JST


PHP5エクステンションのSOAP clientを使用してウェブサービスに接続する処理を書きました。
ウェブサービスとPHPを同じサーバにインストールし、あるウェブサービスのメソッドをHTTPで呼び出して結果が返ってくるまで0.2秒でした。これを、SOAP
clientからウェブサービスへの接続をHTTPSにしてメソッドを呼び出したところ、20.5秒もかかりました。いくらSSLが重いと言ってもHTTPと比べて100倍と言うのは遅過ぎなような気がします。他のメソッドを呼び出しても40倍くらいの違いがあります。
呼び出しの最中、サーバのタスクマネージャではCPUの使用率は100%になり、プロセスで見ると、php-cgi.exeがそのリソースのほとんどを使用していました。

接続を簡単に表すと以下のような感じです。

ブラウザ
   | HTTP
  PHP
   | SOAP client(HTTPS)
ウェブサービス

ウェブサービスはASP.NETで書かれています。

試しに、ウェブサービスとPHPサーバを違うマシンにインストールしたところ、HTTPS接続で2.5秒でした。この結果から、同じマシンにインストールしたときだけこのような症状が起きることが分かりました。ただ、なぜそうなるのか原因が分かりません。何かが衝突しているのではないかと思うのですが。
ちなみに、別々のマシンにインストールした際は、一つのマシンに2つのバーチャルサーバを起動して行ったので、CPUやメモリなどのリソースは元のマシンのものをシェアしています。ですので、単にCPUの処理が分散されたからということではないと考えています。

SOAP clientとSSLの組み合わせで同様な経験をされた方はいらっしゃいませんか?

環境
Windows 2000 Server
PHP 5.2.0
IIS 5.0

Atsushi Higuchi


PHP-users メーリングリストの案内