<< 2024/04 >> | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 |
|
サーバーの転送量を削減する その1
09/04/30 08:39 / サーバー管理Tips
サーバーを運営している場合、小規模ならばそれ程気にしないのですが、ある程度の規模になると転送量を気にしなければなりません。
「うちは回線が太いから大丈夫」と思われる方もいらっしゃいますが「転送量=クライアントが受信するサイズ」なので、転送量が少なければ少ないほどブラウジングするクライアント(ユーザー)は快適に見られるというメリットがあります。 同じようなことがソフトウェアにも言えまして、今では CPU パワーやメモリが沢山使えますのでそれ程気にならないのですが、それを良しとして最新のCPUと大量のメモリがある環境で開発を行うと、それ以下の環境では重いソフトになってしまうことがあります。 「ネストループの最も内側は出来る限り軽くする。」的な考えもありまして、100ループの中の100ループの中で 1ms かかる処理があるとした場合、これが 0.2ms になると単純に計算して 10秒だった処理が 20秒になる訳です。 一つの処理は軽くてもそれが沢山重なればそれなりの速度になり、まさに塵も積もれば山となる。な訳です。 閑話休題 Webサーバーはブラウザとの通信に HTTP(又はHTTPS) を使って通信を行うのですが、この HTTP には 1.0 と 1.1 というバージョンがあります。 現在の主流となるブラウザの殆どは HTTP 1.1 をサポートしていまして、この HTTP 1.1 の中の機能に「HTTP圧縮」という機能があります。 これは、HTTP の中でサーバー側がコンテンツを圧縮して送信しブラウザは圧縮された状態で受信したコンテンツを解凍して展開します。(圧縮には ZIP でも使われている Inflate / Deflate が利用されています) 全てのコンテンツが圧縮される訳では無いのですが(HTMLで使われる、Jpeg/GIF/PNC などは元から圧縮されていますので、これを再度圧縮しても効果が見込めない。余計な CPU パワーを消費するなどのデメリットしかありません)テキストベースである、.html や .txt に関してはかなりの効果が見込めます。 もちろんリアルタイムに圧縮して送信をしていると圧縮コストによる CPU パワーの消費が増えてしまいますが、IIS は初めてリクエストされた時点で、テンポラリに圧縮したコンテンツを作成しておきその内容を送信します。2回目以降は 予め作成されている圧縮コンテンツを送信し、内容が変更された場合は自動的に圧縮コンテンツの更新が行われます。 デメリットとしては圧縮によるCPUコストの増大と圧縮したコンテンツを保存しておく為のHDD容量を使うことですが、CPUコストは新規又は更新後の1回のみですし、HDD容量はHDDの大容量化が進んでいる現在無視できるコストだと思います。 IIS の場合設定はとても簡単です。 Windows2000 + IIS5.0 の場合 1)IIS マネージャーを起動して、コンピュータのプロパティを開きます。 2)次にマスタプロパティの「WWW サービス」を選択して編集を押します。 3)「サービス」タブを開きますと「HTTP 圧縮」項目がありますので「静的ファイルを圧縮する」にチェックを入れます。 一時フォルダは、圧縮されたコンテンツが格納されるフォルダです。HDD 容量に余裕が無い場合は、一時フォルダの最大サイズを指定することにより、必要以上に圧縮コンテンツが貯まるのを防ぐことができます。 同じ項目に「アプリケーションファイルを圧縮する」とありますが、こちらは CGI などが出力する内容をリアルタイムに圧縮して送信する設定です。例えば CGI などで出力される内容が毎回違う場合、圧縮したファイルを作成するのは無意味ですので(毎回内容が変わる為)CGIの出力をIISで一旦受け内容を圧縮して送信するという処理になります。 効果はあるのですが、毎回圧縮処理が入る為、CPU パワーを結構消費します。確実にCPUパワーに余裕がある場合はいいのですがそうでは無い場合は、こちらはオフにしておくのが無難です。 Windows2003 + IIS6.0 の場合 IIS6.0 の場合は、アプリケーションプールと Web サイトが分離されていますので、Web サイトのプロパティから設定を行います。設定の内容については IIS5.0 と完全に同じですので上記を参照して下さい。 Windows2008 + IIS7.0 の場合 IIS7.0 の場合は、デフォルトで HTTP圧縮が有効になっていますので特に変更する必要はありません。 従来の IIS5.0 / IIS6.0 と違う点は、IIS5.0 / IIS6.0 がサーバー全体でしか設定出来なかった点と比べ、IIS7.0 はサイト別に設定が出来るようになっています。 サブドメインで HTML を表示するサイトと CGI を実行するサイトを分けた上で、HTML サイトでは静的ファイルの圧縮のみを行い、CGI を実行するサイトでは、アプリケーションファイルの圧縮を行うと同時に CPU 負荷調節などを行うとサーバー全体の負荷を調節しつつ転送量の削減などを行うことができます。(IIS7.0 いいなぁ!) あっさりと設定できる割には効果がありますので、特に IIS5.0/IIS6.0 を利用している方は設定を確認してみては如何でしょうか? [更新日付:2009/04/30 08:39:02]
トラックバックを見る(0) Log Link [https://akisoftware.com/cgi-bin/blom.exe?akisoft+sl+1aa22cd76cf3a4407b23e45c980e4e18bab550d0] TB Link [https://akisoftware.com/cgi-bin/blom.exe?akisoft+tb+1aa22cd76cf3a4407b23e45c980e4e18bab550d0] 記事へのコメント コメントはありません |
@AKISoftOfficialをフォロー
掲示板 サポートBBS PMailServer BBS アクセスの多い記事
最新記事(カテゴリ別)
PMailServer2 Version 2.53 をリリースしました。
04/08 00:50 フリー版からの製品版移行時の MTA 並列数について 02/17 23:52 メールサーバーの開発を始めて20年 02/07 21:46 PMailServer2 Version 2.52a をリリースしました。 12/26 14:02 PMailServer2 Version 2.52 をリリースしました。 10/01 10:48 PMailServer2 Version 2.51b をリリースしました。 09/19 01:43 PMailServer2 Version 2.51b(仮) Memo 09/12 00:33 PMailServer2 Version 2.51a をリリース、及び脆弱性についてのお知らせ 09/05 01:15 PMailServer2 Version 2.51a Memo 08/21 00:48 アドレスV125(K5)のスターターリレーの交換 08/04 10:10 最新コメント
コメントはありません
UUアクセス数
今日は 168回
昨日は 330回 トータル 305024回 3ヶ月記事別ランキング
プロフィール
Z80から68系、8086系を経由して
Pascalに移行。現在は Delphiをメインに C/C#も囓ってみたり。 「無い物は作れ」の精神で年がら年中なにかを作っています。 すぐ自前で作りたがるので無駄に工数が上がったりして自爆してみたりもします。 好きな物は麺類とお煎餅 Blom内検索
BLOM Version 1.39 ©2007-15 A.K.I Software all rights reserved. |