レンタルサーバー・自宅サーバー設定・構築のヒント
レンタルサーバー・自宅サーバー設定・構築のヒント - レンタルサーバー・自宅サーバーの設定・構築情報を公開しています。

ApacheのKeepAliveを考える

2010年12月10日 2015年5月17日
apache keepalive

以前に「Apacheの同時アクセスを制限(mod_limitipconn)する」という記事を書きました。

Apacheでは、KeepAliveという機能があります。自分は、あまり気にしたことがありませんでした。デフォルトでは、有効になっている?らしいですが、自分のサーバーは、Offになってました。

KeepAliveとは、
HTTP の持続的な接続を有効にする機能のことで、

簡単にいうと1つのページ表示要求があった場合、クライアント(ウェブブラウザ)は、HTMLのテキスト情報を受信し、その情報を解析してそのHTMLに貼り付いている画像やCSSファイル、Javaスクリプトファイルなどを HTMLのテキスト情報に指定されたサーバーへ要求を出すことになります。
その要求先は、ほとんどの場合、同じサーバーになることが多いと思います。(一般的に画像ファイルやCSSファイル,Javaスクリプトファイルを別々のサーバーに置いていることは、少ないと思います。)

となると、同じクライアントから再度要求が来ることが多いということですね。つまり、クライアントから最初にページ要求があったら、何度か、再度、要求がくることが考えられるわけで、 その度に、クライアントとサーバーでネットワークの接続を繰り返していると無駄ですね。遅くなりますね。

・・ということで、クライアントから最初にページ要求があったら、しばらく同じクライアントからの要求をサーバー側で待ちましょう・・・というのがKeepAlive機能です。

KeepAlive機能を使うと、クライアント側へのリアクションが早くなりますので、当然ウェブページの表示が早くなるわけです。

ただ、自分がいろいろと試した感じでは、ブラウザの画面が一気に表示されるか、全体が表示されてパラパラと画像が後で表示されるかの違いかなぁという感じでした。
もちろん、前者が、KeepAlive機能を使った場合です。

今回は、KeepAliveの使い方と注意すべき点を、簡単に解説してみたいと思います。

KeepAliveを使ってみましょう

KeepAlive関連ディレクティブは、以下のとおりです。下記のディレクティブを設定することでKeepAlive機能を制御します。

KeepAlive
HTTP の持続的な接続を有効にします。(On/Offで設定します)
KeepAliveTimeout
KeepAlive=On の時に有効で、持続的な接続で次のリクエストが来るまでサーバが待つ時間(秒)を設定します。
MaxKeepAliveRequests
KeepAlive=On の時に有効で、持続的な接続上で許可されるリクエストの数を設定します。

デフォルトの設定は、以下のようになっています。

KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 15

上記の設定を簡単に解説すると

クライアントから要求がきたら、同じクライアントからの再要求を15秒待ちます。また、同じクライアントからの要求が100件を超えたら、待つのを止めます。

非常に一般的な設定で、1ページの必要なリンク先(画像やCSSなど)が、概ね100個を超えないということと、遅くとも15秒以内には、再要求がくるだろう・・・という前提条件のもとの設定です。

KeepAlive機能を使うときの注意点
もちろん、良いことばかりではありません。特にページビューが激しいサイトや使えるリソースが少ないレンタルサーバーには、気をつけなければなりません。

上記の設定でいうと、最長で15秒間は、待ってしまうわけです。

これは、その待ち時間の間は他の処理をしない・・・ということでもあります。

潤沢なリソースがあれば別ですが、一般的には、来るかどうかわからない要求を待つことが、本当にメリットがあるか検討する必要があります。
結局、この待ちの間は、使えるプロセス(あるいはスレッド)が1つ減ることに違いがないわけですから、待ちの間に、他の要求が来れば、プロセス(あるいはスレッド)が不足することもあり得ます。

待って再要求が短い時間の間に来る確率が高ければ高いほど、この機能は、ある程度、有効なのだと思います。

そこで、以下のような設定に変更してみました。

KeepAlive On
MaxKeepAliveRequests 20
KeepAliveTimeout 5

最初に表示されるまでに、どれくらいの画像やCSS、Javaファイルが必要か、あるいは見て耐えられるものか・・・と考えると自分のサイトでは、せいぜい、20個ぐらいの画像やCSS、Javaファイルが読み込めたら、ページとしてなりたつなぁ・・ということで、このような設定を行いました。
あとは、待ち時間ですが、できる限り短くしたいなぁということで、日本しかターゲットにしていないので、概ね5秒でも間に合うはずかなぁ・・というところですね。

ということで、簡単ながら、KeepAliveについて書いてみました。
先にも記述しましたが、KeepAlive On にすることで劇的に表示が早くなるわけではありません。そのため、必ずしもKeepAlive Onであるべきだとも思いませんが、せっかくあるので、使ってみるのも悪くないという程度です。
ただ、設定したあとのプロセスのモニターを忘れないようにしましょう。
プロセスが異常に増えたり、待ちプロセスが増えるようなら、KeepAlive Off にすべきでしょう。
ご利用のブラウザは、広告ブロック(AdBlockなど) が適用となっていませんか?
このサイトでは、コンテンツの一部が非表示、あるいは、コメント、お問い合わせの投稿ができない検索ができないことがあります。


関連記事 :

nginx でKeepAliveを設定してみる

以前に ApacheのKeepAliveを考える で Apache による KeepAlive について記事を書きました。 今回は、その ...

さくらのVPSでカスタムOSのインストールを行うには?

さくらのVPSでカスタムOSのインストールを行うには、 HTML 5 対応ブラウザが動作する環境、あるいは、 Java VN ...

さくらのVPSへUbuntu 10.04 LTS, 12.04 LTS, 14.04 LTS をインストールしてみた

さくらのVPSでは、カスタムOSとしての Ubuntu 10.04 LTS 提供を終了しました。 現在(2014.8)、以下の ...

お名前.com VPS(KVM) でカスタムOSのインストールを行うには?

今回は、以前に さくらのVPSでカスタムOSのインストールを行うには? で記事にした内容の お名前.com VPS(KVM) 版です ...

SSH接続が自動で切断された時の対処

SSHで接続していて、何もしない時間が長くなった場合に、いつの間にか切断されていたりします。 特に、デバッグ作業などのためにコンソールから ...



コメントを投稿 :

お名前 *

メールアドレス *
( メールアドレスが公開されることはありません。)

サイトアドレス

コメント *

* 印の項目は、入力が必要な項目です。




最近投稿の記事

[ 画像提供元 : Amazon ] 先日、1TBのディスクの入れ替え時にバックアップをとろうとディスクコピーを行いました。 その際 ...

Windows で Linux ファイルシステム Ext4 のディスクをマウントするには? Ext3Fsd が、おそらく、最も簡単なツール ...

今回は、Windows で Compass を使ってみました。 Compass とは、 Sass(サス、Syntactica ...

今回は、Anti Adblock を使ってみました。 Anti Adblock とは、 そもそも Adblock という ウェブ ...

デスクトップ環境でない サーバーで、Webページのキャプチャー画像をコマンドで撮る には、wkhtmltoimage, CutyCapt ...


さくらのVPS 全プラン リニューアルです。(石狩(北海道)も選択可)


root権限ありで ¥685 / 月 ~ と非常にリーズナブルな CPU 1(core)の 512 プランから、 最高 CPU 10(core), メモリ 32(GB), SSD容量 800(GB) までとプランが充実。
ディスクは、SSDとHDDの選択が可能になった他、データセンターは人気の東京、石狩(北海道)となりました。

また、どのプランでも好きなOSが選べます
( CentOS, Fedora, Scientific Linux, FreeBSD, Ubutu, Debian )

管理人もおすすめのVPSです。
試用期間がありますから、一度、お試しを!!

詳しくは、http://vps.sakura.ad.jp/さくらのVPSのサイトへ へどうぞ!!

カテゴリ


Serverman@VPS 完全1ヶ月無料 キャンペーン実施中です。


Serverman@VPS 完全1ヶ月無料 キャンペーン実施中です。
最近、スワップにも対応した Serverman@VPS は、かなりリーズナブルかもです。

  • メモリ1GB~2GBのEntryプラン :月額:490円
  • メモリ2MB~4GBのStandardプラン :月額:980円
  • メモリ4GB~8GBのProプラン :月額:1,980円

新規申し込みで1ヶ月間完全無料となるキャンペーンを実施中です。
Serverman@VPSの特徴は、安さとIPv6対応です。また、初期設定費0円もポイントです。

IPv6でちょっと遊んでみたい方には、おすすめかもしれませんね。最低利用期間もありませんから、気に入らないときは即解約もできます。

Serverman@VPSの詳細については、 http://dream.jp/vps/ Serverman@VPSのサイトへへどうぞ。



KVM採用 ConoHa VPSは、時間単位で借りれる便利なVPSです。


ConoHa VPS は、初期設定費0円最低利用期間無し時間単位で清算可能、 さらに、Web APIを使って自動化を図ることもできる便利なVPSです。

海外サーバー設置も可能で、ローカル接続にも対応と、かなり、機能豊富なサーバーです。

新規ユーザ登録で、クーポンもらえますから、まずは、お試しですね。

ConoHa VPSの詳細については、
http://www.conoha.jp/ へどうぞ。

KVM採用 お名前.com VPS(KVM) 2G プラン 初期設定費無料 キャンペーン 実施です。


メモリ2GBプラン CPU:3core、Disk:200GB
月額:1,153円から (初期設定:1,680円0円)

さくらのVPSがリニューアルされてもなんのその。
1GBメモリ / 2Core を ¥834 – の格安価格で提供中です!
間違いなくスペックからすると割安感ありです。
年間割引時の途中解約で返金がないのは、 ちょっと残念ですが、それでもこの割安感は魅力です。

まずは、お試しですね。

お名前.com VPS(KVM)の詳細については、
http://www.onamae-server.com/vps/ へどうぞ。(お試し期間が15日あります。)



  • ソーシャルブックマーク

  • はてなブックマークへ追加するはてな登録数
ページトップへ
Time : 0.2083 [s]