こんにちは、阿久津です。Internet Explorer(以下、IE) 8では、Webサーバへの最大同時接続数が拡大されているのをご存じでしょうか。IE7まではHTTP1.1で2接続、HTTP1.0でも4接続でしたが、IE8では最大6接続まで行なうようになりました(図01)。

図01: IE8では最大同時接続数が変更されました

そもそもWeb関連の技術仕様を公開し、指針となるRFC(Request for Comments)の2616では、「持続的接続を使用するクライアントは、サーバへの同時接続の数を制限すべきである。2接続より多く維持すべきではない(一部抜粋)」と記述されています。もちろんRFCは提示しているに過ぎず、強制するものではありませんので、その内容を堅持する必要はありません。それでも多くのインターネット技術における指針となったRFCに準ずるのが通例でしょう。

ではなぜ、Microsoftはこのような仕様変更に至ったのでしょうか。それを述べるにはRFC2616のドラフトが完成した時代を思い出さなくてはなりません。HTTP 1.1の仕様を定めたRFC2616のドラフトがリリースされたのは1997年と10年前以上。日本では前年に個人向け常時接続環境となるOCNエコノミーのサービスが始まった頃です。それからADSL、FTTHと高帯域幅を売りにするサービスが一般的になった現状は、改めて説明するまでもないでしょう。その一方でWebサーバやプロキシサーバの性能向上もあり、最大同時接続数の制限はさほど意味を持たなくなりました。

もう一つのポイントがAjaxに代表される動的なWebページの増加。従来の静的なWebページと比べますと、受信するデータ量は肥大化し、最大同時接続数の抑制はAjaxアプリケーションのパフォーマンスに大きく影を落とします。このようにサーバやクライアントコンピュータの機能向上や、ネットワークインフラの高速化、ネットアプリケーションのリッチ化に伴うデータ量の増加といった現状をかんがみ、最大同時接続数の拡大に至ったのでしょう。

さて、IEにおける最大同時接続数と言えば定番中のチューニングテクニックです。HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Internet Settingsキーに、DWORD値「MaxConnectionsPerServer」「MaxConnectionsPer1_0Server」を作成し、数値を調整した経験をお持ちの方も多いでしょう。しかし、IE8ではチューニングを行なうキーやエントリが異なっています。そこで今週は、IE8の最大同時接続数を変更し、Ajaxに代表されるWebアプリケーションのパフォーマンスを向上させるチューニングを紹介しましょう。

1.IE8を終了させます。
2.[Win]+[R]キーを押して「ファイル名を指定して実行」を起動し、テキストボックスに「regedit」と入力してから<OK>ボタンをクリックします。
3.レジストリエディタが起動したら、HKEY_CURRENT_USER \ Software \ Microsoft \ Internet Explorer \ Main \ FeatureControlまでキーをたどって開きます。
4.FeatureControlキーを右クリックし、メニューから<新規>→>キー>と選択します。
5.ステップ04で作成したキー名を「FEATURE_MAXCONNECTIONSPERSERVER」に変更してください。
6.FEATURE_MAXCONNECTIONSPERSERVERキーを開き、右ペインの何もないところを右クリックし、メニューから<新規>→<DWORD値>と選択します。
7.ステップ06で作成した値名を「iexplore.exe」に変更します。
8.DWORD値「iexplore.exe」をダブルクリックし、<10進数>をクリックしてから、値のデータを「8」などに書き換えて<OK>ボタンをクリックします。
9.ステップ04~08の手順を参考にして、FEATURE_MAXCONNECTIONSPER1_0SERVERキーにDWORD値「iexplore.exe」を作成し、データ値を変更してください。
10.[F5]キーを押して変更内容をシステムに反映させてから、レジストリエディタを終了させましょう。

これでチューニング終了です(図02~11)。

図02: IE8が起動中の場合は、<×>ボタンをクリックして終了させましょう

図03: [Win]+[R]キーを押して「ファイル名を指定して実行」を起動し、テキストボックスに「regedit」と入力して<OK>ボタンをクリックします

図04: レジストリエディタが起動したら、HKEY_CURRENT_USER \ Software \ Microsoft \ Internet Explorer \ Main \ FeatureControlまでキーをたどって開き、FeatureControlキーを右クリックします。メニューから<新規>→<キー>とクリックしてください

図05: 先ほど作成したキー名を「FEATURE_MAXCONNECTIONSPERSERVER」に変更します

図06: FEATURE_MAXCONNECTIONSPERSERVERキーを開き、右ペインの何もないところを右クリックします。メニューから<新規>→<DWORD値>と選択し、値名を「iexplore.exe」に変更してください

図07: DWORD値「iexplore.exe」をダブルクリックで開き、<10進数>をクリックしてから、値のデータを「8」などに書き換えてから<OK>ボタンをクリックします

図08: 再びFeatureControlキーを右クリックします。メニューから<新規>→<キー>とクリックしてください

図09: 先ほど作成したキー名を「FEATURE_MAXCONNECTIONSPER1_0SERVER」に変更し、同キーを開きます。右ペインの何もないところを右クリックし、メニューから<新規>→<DWORD値>と選択して、値名を「iexplore.exe」に変更してください

図10: DWORD値「iexplore.exe」をダブルクリックで開き、<10進数>をクリックしてから、値のデータを「8」などに書き換えてから<OK>ボタンをクリックします

図11: [F5]キーを押して変更内容をシステムに反映させてから、レジストリエディタを終了します

後はIE8を起動し、パフォーマンスの変化をご確認ください。なお、FEATURE_MAXCONNECTIONSPERSERVERキーの設定がHTTP1.1用、FEATURE_MAXCONNECTIONSPER1_0SERVERキーの設定がHTTP 1.0用です。肝心のデータ値ですが、過度に大きな数値を設定してしまいますと、クライアントコンピュータへの負担はもちろん、Webサーバに対する負担も高まりますので、8から12程度に抑えておきましょう。また、システム全体に設定を行なう場合は、HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Internet Explorer \ MAIN \ FeatureControlキーで各操作を行なってください。

それでは、また次号でお会いしましょう。

阿久津良和(Cactus)