[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 メーリングリストの案内