(57)【特許請求の範囲】
【請求項１】
複数サーバに単一ないし複数の同一のコンテンツ群を配置し、接続し、接続をそれぞれのサーバに割り振っていくことにより、負荷分散を図るサーバへの接続の振り分け方法において、
コンテンツ毎に最後に当該コンテンツへのアクセスが生じてからのタイムアウト時間を設定しておき、
新規に接続要求が来た場合には、上記タイムアウト時間内であれば、当該コンテンツの配信で最後に接続を振ったサーバに接続を振り分けるようにすることを特徴とするサーバへの接続の振り分け方法。
【請求項２】
請求項１に記載のサーバへの接続の振り分け方法において、
前記タイムアウト時間を定量的に算出する場合、キャッシュ上に配置されたデータを読み込んでいる接続がない状態で、サーバのトータルスループットをＴ（Ｍｂｐｓ）、キャッシュ可能領域をＭｃ（Ｍｂｙｔｅ）とすると、キャッシュが入れ替わる時間Ｔｃ（ｓｅｃ）は、Ｔｃ＝８Ｍｃ／Ｔ（ｓｅｃ）で算出できることから、最後に当該コンテンツへのアクセスが生じてからの上記時間Ｔｃで見積ることができ、これに基づいて振り分けるサーバを選択することを特徴とするサーバへの接続の振り分け方法。
【請求項３】
請求項１に記載のサーバへの接続の振り分け方法において、
前記タイムアウト時間内に振り分けるべきサーバが存在しない時には、アクティブなサーバレスポンスタイム測定法を用いて、最もレスポンスタイムが短かいサーバに振り分けることを特徴とするサーバへの接続の振り分け方法。
【請求項４】
請求項１に記載のサーバへの接続の振り分け方法において、
前記タイムアウト時間内に振り分けるべきサーバが存在しない時には、最も接続数の少ないサーバに振り分けることを特徴とするサーバへの接続の振り分け方法。
【請求項５】
請求項１に記載のサーバへの接続の振り分け方法において、
前記タイムアウト時間内に振り分けるべきサーバが存在しない時には、サーバリソースを測定し、最もリソースに余裕のあるサーバを選択することにより、該サーバに接続を振り分けることを特徴とするサーバへの接続の振り分け方法。
【請求項６】
請求項１から請求項５までの中のいずれかに記載のサーバへの接続の振り分け方法の手順をコンピュータに実行させるための接続振り分け用プログラム。
【請求項７】
請求項６に記載の接続振り分け用プログラムを格納したことを特徴とするコンピュータで読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、サーバ上のキャッシュを活用することにより、ディスクアクセスを最小限に抑え、それによりコンテンツ配信速度を高めるようにしたサーバへの接続の振り分け方法およびそのプログラムと記録媒体に関する。
【０００２】
【従来の技術】
インターネットを通して巨大なファイルをロードしたり、映像をストリーミング磁気テープ装置で鑑賞したり、Ｗｅｂページを閲覧したりする際に、配信要求の集中という問題がしばしば発生する。これを回避するためには、サーバを複数台用意して、接続を振り分けるという回避手法がとられる。
以下、図８を例にとり、サーバへの接続の振り分けについて簡単に説明する。
【０００３】
図８では、ＤＮＳ（Ｄｏｍａｉｎ  Ｎａｍｅ  Ｓｙｓｔｅｍ）１２を振り分け装置として機能させる方法を示している。サーバ１３，１４，１５には同じｗｗｗ．ｎｔｔ．ｃｏ．ｊｐというドメイン名が与えられている。クライアント１１からＤＮＳ１２に対してｗｗｗ．ｎｔｔ．ｃｏ．ｊｐのＩＰアドレスを教えて欲しいという問い合わせに対し、ＤＮＳ（この場合には、振り分け装置として機能）１２が、接続の振り分けのポリシーに照らし合わせて、ＩＰアドレスをクライアント１１に返答する。あるクライアント１１には、192.168.1.1という回答を返送し、別のクライアント１１’には192.168.1.2という回答を返送することになる。
【０００４】
このように動作させることで、ｗｗｗ．ｎｔｔ．ｃｏ．ｊｐへの接続を３台のサーバ１３，１４，１５に振り分け、サーバへの負荷を分散することが可能である。なお、ここでは、ＤＮＳ１２を接続の振り分け装置として利用する方法を示したが、他にも振り分け装置で接続要求をするパケットに記述されている要求先のＩＰアドレスを付け替えて振り分けを行う方法等も存在するが、詳細は省略する。
【０００５】
従来、接続サーバの振り分け方法としては、下記の技術が存在する。
（▲１▼接続ラウンドロビン方式）
この方法は、振り分け装置において、振り分けるサーバを順番に指定していく方法である。例えば、図８に示すように３台のサーバ１３，１４，１５があった場合には、最初の接続をサーバ１３に振り分け、次の接続をサーバ１４に振り分け、その次の接続をサーバ１５に振り分け、次の接続をサーバ１３に振り分けるという具合に、接続を振り分けるサーバを順番に指定していく方式である。
【０００６】
（▲２▼最低接続本数サーバ選択方式）
この方法は、振り分け装置において、現在の接続本数が最も少ないサーバに接続を振り分ける方法である。例えば、図８に示すように３台のサーバ１３，１４，１５があり、それぞれ現在の接続本数がサーバ１３は４本、サーバ１４は３本、サーバ１５は２本であった場合に、その時発生した接続要求に対して現在の接続本数の最も少ないサーバ１５に接続を振り分ける。なお、この場合に、接続数の把握は振り分け装置１２が行う。
【０００７】
（▲３▼ランドトリップタイムによるサーバ選択方式）
この方法は、振り分け装置において、ｐｉｎｇ等のアクティブなサーバレスポンス測定法を用いて、接続要求が発生した時点で最もレスポンスタイムの短いサーバに振り分ける方法である。ここで、ｐｉｎｇは、ＩＰの上位プロトコルの一種であるＩＣＭＰ（Ｉｎｔｅｒｎｅｔ  Ｃｏｎｔｒｏｌ  Ｍｅｓｓａｇｅ  Ｐｒｏｔｏｃｏｌ）を用いて、相手先ホストに対して返答要求を送出するプログラムである。ＩＰベースのネットワークでつながったホスト同士の接続性の確認のために使用されることが多い。また、返答が戻るまでのターン・アラウンド時間を調べる機能を持つものもあり、相手先への到達経路の混み具合の目安にすることができる。
【０００８】
この例においては、アクティブなレスポンス測定手法としてｐｉｎｇを用いることにする。図８に示すように３台のサーバ１３，１４，１５があった場合に、振り分け装置１２は接続要求の発生を受けて、それぞれのサーバ１３，１４，１５に対してｐｉｎｇを用いてそれぞれのサーバ１３，１４，１５へのラウンドトリップタイムを測定する。その結果、最もラウンドトリップタイムの短かかったサーバを最もレスポンスの良いサーバと判断し、そのサーバに対して接続を振り分ける手法をとる。なお、実装によっては、定期的にｐｉｎｇ等のアクティブなサーバレスポンス測定法を用いて測定をしておき、接続要求が発生した時には、最も新しい測定結果を基にサーバを選択するという方法も存在する。
【０００９】
（▲４▼サーバリソース監視による振り分け方式）
この方法は、振り分け装置において、振り分け先のサーバのリソース（例えば、ＣＰＵ利用率、ディスクＩ／Ｏ量、現在のスループット）を監視して、それらのどれか１つ、もしくは複数の組み合わせを判断の尺度とし、最もリソースに余裕のあるサーバに接続を振り分ける方式である。
【００１０】
【発明が解決しようとする課題】
通常、サーバにおいては、ディスクから一度読み出したデータをメモリ上のキャッシュ領域に保存しておく。これらのデータは、ディスクから新しいデータがキャッシュに読み込まれることにより、キャッシュ領域から削除されるまで、キャッシュ領域上に残り続ける。こうすることにより、読み出しおよびアクセス速度の遅いディスクへのアクセスを極力避けることが可能となる（キャッシュの機能）。コンテンツ配信において、ディスクへのアクセスの頻発が発生した場合に、ディスクがシステムのボトルネックとなる可能性が高い。
しかしながら、従来の複数サーバへの接続の振り分け方法では、キャッシュを有効に活用することが考慮されておらず、その結果、コンテンツ配信において、性能を十分に発揮できるとは言い難い。
【００１１】
図９は、従来手法でのディスク上のデータおよびキャッシュのイメージを示す図である。
図９では、従来技術を用いて振り分けを行った場合に、性能を発揮できない具体例が示されている。すなわち、図９では、矢印はファイルの読み出し位置を示している。これらの矢印が左から右に進んで行くことにより、データを読み出していく。横線領域はキャッシュに無い領域であり、グレイの領域はキャッシュにある領域である。キャッシュ上にデータが無い場合には、ディスクからデータを読み出し、キャッシュ上にデータがある場合には、ディスクにはアクセスせずにキャッシュ上に配置されたデータを読み出す。図９の例では、合計６本の接続が３台のサーバに２本ずつ振り分けられているが、どの接続もキャッシュからデータを読んでいないことがわかる。従来の振り分け方法では、キャッシュの有効活用を考慮に入れていないために、このような状況が発生する可能性が高い。
【００１２】
そこで、本発明の目的は、これら従来の課題を解決し、サーバ上のキャッシュを活用することにより、ディスクアクセスを最小限に抑えることで、コンテンツ配信速度を高めることが可能なサーバへの接続の振り分け方法およびそのプログラムと記録媒体を提供することにある。
【００１３】
【課題を解決するための手段】
上記目的を達成するため、本発明によるサーバへの接続の振り分け方法は、複数サーバに単一ないし複数の同一のコンテンツ群を配置し、接続をそれぞれのサーバに割り振っていくことにより、負荷分散を図るシステムであって、コンテンツ毎に最後にそのコンテンツへのアクセスが生じてからのタイムアウト時間を設定しておく、新規に接続要求が発生した場合に、そのタイムアウト時間内であれば、そのコンテンツの配信で最後に接続を振ったサーバに接続を振るようにする。（この手法は、複数サーバに同一のコンテンツが配置されている場合に、有効に作用する）
【００１４】
また、キャッシュを持っているサーバに振り分けることができない時、すなわち、タイムアウト時間内のサーバが存在しない場合に、従来の振り分け方法の一つであるｐｉｎｇ等のアクティブなサーバレスポンスタイム測定法を用いて、最もレスポンスタイムの短いサーバに振り分けるようにする。
また、キャッシュを持っているサーバに振り分けることができない時、すなわち、タイムアウト時間内のサーバが存在しない場合に、従来の振り分け方法の一つである、最も接続数の少ないサーバを選択する手法を用いて接続を振り分ける。
さらに、キャッシュを持っているサーバに振り分けることができない時、すなわち、タイムアウト時間内のサーバが存在しない場合に、従来の振り分け方法の一つである、サーバリソースを測定し、最もリソースに余裕のあるサーバを選択する手法を用いて、接続を振り分ける。
【００１５】
【発明の実施の形態】
以下、本発明の実施例を、図面により詳細に説明する。
（請求項１の実施例）
図４は、ディスクおよびメモリのデータ転送速度とアクセス時間の関係を示す図である。
コンテンツ配信サーバにおいて、データをディスクから読み出す速度とソフトウェアキャッシュ上に配置されたデータを読み出す場合では、速度に明らかな差が見られる。すなわち、図４に示すように、ディスクの最良状態のときには、アクセス時間が０ｍｓｅｃで、読み出し速度は４３．３Ｍｂｙｔｅ／ｓｅｃであり、ディスクの最悪状態のときには、アクセス時間が２６．４ｍｓｅｃとかなり遅く、かつ読み出し速度も２．６Ｍｂｙｔｅ／ｓｅｃと低速度である。これに対して、キャッシュが内蔵されたメモリのアクセス時間は０．００６ｍｓｅｃ、読み出し速度は９３８Ｍｂｙｔｅ／ｓｅｃと極めて速い。
【００１６】
請求項１の発明では、複数のサーバに単一ないし複数の同一のコンテンツ群を配置し、接続をそれぞれのサーバに割り振っていくことにより、負荷分散を図るシステムであって、コンテンツ毎に最後にそのコンテンツへのアクセスが生じてからのタイムアウト時間を設定しておき、新規に接続要求が発生した場合には、そのタイムアウト時間内であればそのコンテンツの配信で最後に接続を振ったサーバに接続を振るようにする。
【００１７】
本発明では、サーバの振り分け装置で、データがキャッシュ上に配置されている可能性の高いサーバを選択することにより、コンテンツ等の配信性能の向上を図る。請求項１の方法を用いることにより、よりキャッシュにデータが配置されている可能性の高いサーバの選択が可能となるので、ディスクへのアクセス頻度が低減できる。図４の結果から、キャッシュからデータを読み込む場合と、ディスクからデータを読み込む場合とでは、速度に明らかに差が見られるので、本発明は極めて有効な手法となる。
【００１８】
図１は、本発明の一実施例を示すサーバへの接続の振り分けに係る実験環境の図であり、図２は、請求項１の手法と従来手法の性能差を示す図である。
図１に示すように、クライアント１１をスイッチ１２Ａに接続するとともに、スイッチ１２Ａを３台のサーバ１３，１４，１５に接続した。クライアント１１とスイッチ１２Ａの間はギガイーサネット（登録商標）で接続され、サーバ１３，１４，１５とスイッチ１２Ａの間は１００メガファストイーサネット（登録商標）で接続される。
各サーバ１３，１４，１５には、１Ｇｂｙｔｅのコンテンツが８個配置されている。また、クライアント１１からサーバ１３，１４，１５への接続要求の発生間隔をλ＝０．１の指数分布に従って発生させ、接続するコンテンツの選択をランダムに行う。例えば、最初の接続はコンテンツ１、次にある時間を置いてコンテンツ３、次にコンテンツ１、次にコンテンツ７という具合に接続の要求を発生させていく。
【００１９】
本実験においては、振り分け装置が無いので、クライアント１１に接続装置があるかのように振る舞わせる。具体的には、接続要求の時間と接続先のコンテンツが記述された接続要求のリストを事前に作成し、それぞれの接続要求がどのサーバに振り分けられるかを、請求項１の方法、従来のラウンドトリップタイムの最も短かったものを選択する方法、最も接続本数の少ないサーバを選択する方法、ラウンドロビンを用いる方法のそれぞれについて検討し、その結果、接続要求の時間と接続先のコンテンツと接続先のサーバが記述されたリストを作成して、そのリストに従って接続を発生させた。
なお、スイッチ１２Ａは、実験段階であるため、人手により計算結果に基づいて接続を切り替えていくようになっている。
【００２０】
比較検討の対象として、ラウンドロビンによる手法と、最低接続本数のサーバに接続する手法と、ｐｉｎｇを用いてラウンドトリップタイムを測定して最良のものを選択する手法とを用いた。また、本発明の実験では、振り分けのタイムアウト時間を３０秒に設定した。
評価は、クライアント１１のトータルスループットによって行う。なお、トータルスループットとは、クライアントマシンが単位時間に得たデータの総量のことを指す。
図２に示す結果により、請求項１の手法が有効であることが明らかになった。
【００２１】
図３は、本発明の一実施例を示す接続の振り分け装置のブロック構成図である。
接続振り分け装置１２は、クライアント１１からの接続要求をサーバ１３，１４，１５に振り分ける機能を持つ。この装置１２は、データ取得部１２１とデータ記憶部１２２と算出部１２３とからなる。データ取得部１２１では、振り分け先のサーバの各種データ（ラウンドトリップタイム、現在の接続本数、ＣＰＵ利用率、ディスクＩ／Ｏ量、トータルスループット）を取得する。
データ記憶部１２２では、コンテンツ毎に最後に接続を振り分けたサーバおよびその時の時刻を記憶しておく。算出部１２３では、データ取得部１２１が取得したデータおよびデータ記憶部１２２に蓄積された接続記録から、振り分けるべきサーバを算出する。
【００２２】
（請求項１〜５の動作）
図５は、図３における接続振り分け装置の処理フローチャートである。
装置が起動されると、データ取得部１２１がクライアント１１からの新規接続要求を検出し（ステップ１０１）、タイムアウト時間内に同一コンテンツの配信を行ったサーバの有無を判別し（ステップ１０２）、あれば、最後に接続の行われたサーバへ接続を振り分ける（ステップ１０３）。また、同一コンテンツの配信が行われたサーバが無ければ、▲１▼ラウンドロビンで接続するサーバを選択する。あるいは、▲２▼ラウンドトリップタイムの最も短いサーバを選択する（請求項３）。あるいは、▲３▼現在の接続本数の最も少ないサーバを選択する（請求項４）。あるいは、▲４▼リソースに最も余裕のあるサーバを選択する（請求項５）（ステップ１０４）。このステップ１０４では、上記▲１▼〜▲４▼のいずれかの処理を行うものとする。
【００２３】
（請求項２の実施例）
請求項２では、請求項１の手法を用いる際に、必要となるタイムアウト時間の定量的な算出方法を示すものである。
キャッシュデータのキャッシュ領域への配置アルゴリズムはＦＩＦＯであることから、データがキャッシュ領域に存在し続ける時間に、最後にそのコンテンツへのアクセスが生じてからの時間で見積もることが可能となるので、この時間に着目することで振り分けるサーバの選択が可能となる。
キャッシュ上に配置されたデータを読み込んでいる接続がない状態で、サーバのトータルスループットをＴ（Ｍｂｐｓ）、キャッシュ可能領域をＭｃ（Ｍｂｙｔｅ）とすると、キャッシュが入れ替わる時間Ｔｃ（ｓｅｃ）は、次式で表わされる。
Ｔｃ＝８Ｍｃ／Ｔ（ｓｅｃ）  ・・・・・・・・・・・・・・（１）
請求項２によれば、請求項１の発明を用いる際に必要となる動的に変化していくキャッシュ上のデータが上書きされる時間を推定することが可能になる。
【００２４】
図６は、請求項２に関する処理の動作フローチャートである。
接続振り分け装置１２の算出部１２３は、起動されると、サーバのスループットを計測し（ステップ２０１）、請求項２の式（１）を参照してタイムアウト時間の設定を行う（ステップ２０２）。この動作をある一定周期で繰り返し行う。
【００２５】
（請求項３の実施例）
請求項３では、請求項１の手法において、請求項１の手法が失敗に終った場合には、従来のラウンドトリップタイムによる手法を追加的に行うものである。
すなわち、キャッシュを持っているサーバに振り分けることができない時、つまりタイムアウト時間内のサーバが存在しない場合には、従来の振り分け手法の一つである、ｐｉｎｇ等のアクティブなサーバレスポンスタイム測定法を用いて、最もレスポンスタイムの短いサーバに振り分ける。
【００２６】
例えば、図３に示すように、３台のサーバ１３，１４，１５が接続振り分け装置１２に接続されている場合、接続振り分け装置１２はクライアント１１からの接続要求の発生を受けて、それぞれのサーバ１３，１４，１５に対してｐｉｎｇを用いてそれぞれのサーバ１３，１４，１５へのラウンドトリップタイムを測定する。すなわち、ｐｉｎｇは、ホスト名かＩＰアドレスを指定してパケットを打ち、それに対する応答時間を調べることができる。これにより、ラウンドトリップ時間を測定することができる。ラウンドトリップタイムとは、あるコンピュータから別のコンピュータに対してパケットを送信し、それに対する応答が返ってくるまでの時間のことである。
データ取得部１２１は、その測定結果を取得し、測定の結果を取得してデータ記憶部１２２に転送する。データ記憶部１２２は、送られてきた測定結果を蓄積するとともに、コンテンツ毎に最後に接続を振り分けたサーバおよびその時の時刻を記憶しておく。算出部１２３は、データ記憶部１２２に蓄積されたデータから、計算式で算出を行い、最もラウンドトリップタイムの短かったサーバを最もレスポンスの良いサーバと判断し、そのサーバに対して接続を振り分ける。
【００２７】
（請求項４の実施例）
請求項４の手法では、キャッシュを持っているサーバに振り分けることができない場合、つまり、タイムアウト時間内のサーバが存在しない場合には、従来の振り分け方法の一つである、最も接続数の少ないサーバを選択する手法を用いて接続を振り分ける。
図７は、請求項４の実施例を示す処理の説明図である。
請求項１の方法と従来技術における最も接続本数の少ないサーバに接続を振り分ける方法とを組み合わせる手法であって、図７はこの請求項４の手法における実際の処理の具体例を示している。
【００２８】
請求項１の方法を用いる際に必要となるタイムアウト時間は、３０秒であるとデータから推定された。まず、クライアントから接続（（１）コンテンツ１への接続要求）が来ている。初期状態では、どのサーバにも接続がないので、サーバ１に接続を振り分ける。次に、１０秒後に接続（（２）コンテンツ２への接続要求）が来ているが、コンテンツ２の配信は初めてであるので、優先的に振り分けるサーバが存在しないため、サーバ２に振り分ける。その１０秒後に接続（（３）コンテンツ１に接続要求）が来ている。コンテンツ１の配信は接続（（１）コンテンツ１への接続要求）で行っており、先ほどの配信開始から２０秒経過している。タイムアウト時間が３０秒であるので、まだサーバ１のキャッシュにこれから配信を行うデータが残っていると考えられるので、接続（（３）コンテンツ１への接続要求）はサーバ１に振り分ける。
【００２９】
その１０秒後に接続（（４）コンテンツ４への接続要求）が来ているが、コンテンツ４の配信を行うのは初めてであるので、最も接続数の少ないサーバ３に接続を振り分ける。その１０秒後に接続（（５）コンテンツ４への接続要求）が来ているが、コンテンツ４は１０秒前にサーバ３に振り分けたので、サーバ３に接続（（５）コンテンツ４への接続要求）を振り分ける。その２０秒後に接続（（６）コンテンツ１への接続要求）が来ているが、コンテンツ１が最後に配信されたのは５０秒前であり、タイムアウト時間を過ぎてしまっているため、サーバ１のキャッシュにこれから配信するデータが配置されていないので、最も接続本数の少ないサーバ２に接続を振り分ける。
このようにして、各サーバ１，２，３には、それぞれ２本ずつ接続されていることになる。
【００３０】
次に、サーバの現在の接続本数に関するデータを、接続振り分け装置１２のデータ取得部１２１が取得する方法の一例を説明する。
サーバの接続本数のデータを取得する手法は複数存在するが、それらのうちで主に用いられている手法は下記の方法である。
（ａ）ＳＮＭＰ（Ｓｉｍｐｌｅ  Ｎｅｔｗｏｒｋ  Ｍａｎａｇｅｍｅｎｔ  Ｐｒｏｔｏｃｏｌ）を利用し、サーバの各種情報を一元取得管理することができる。（ｂ）独自に管理システムを構築する手法：上記ＳＮＭＰを用いての管理が不可である場合には（例えば、ＳＮＭＰでは効率の悪い場合）、各サーバにリソースを報告するデーモンを配置し、接続本数を定期的に報告するプログラムにより、必要とされるデータを取得する方法がある。これは、振り分け装置１２から問い合わせがサーバのサーバリソース監視プログラムに送られると、このプログラムから振り分け装置１２に対して、それに対する返答が返される。
【００３１】
（請求項５の実施例）
請求項５では、請求項１の手法において、キャッシュを持っているサーバに振り分けることができない時、つまりタイムアウト時間内のサーバが存在しない場合には、従来の振り分け手法の一つである、サーバリソースを測定し、最もリソースの余裕のあるサーバを選択する手法を用いて接続を振り分ける。
図３に示すように、接続振り分け装置１２において、データ取得部１２１が振り分け先のサーバ１３，１４，１５のリソース（例えば、ＣＰＵ利用率、ディスクＩ／Ｏ量、現在のスループット等）を監視して、それらのどれか１つを判断の基準として、最もリソースに余裕のあるサーバに接続を振り分ける。
データ取得部１２１は、ＣＰＵ利用率、ディスクＩ／Ｏ量、現在のスループット等を監視して、情報を取得する。データ記憶部１２２は、データ取得部１２１が取得したデータを蓄積するとともに、コンテンツ毎に最後に接続を振り分けたサーバおよびその時の時刻を蓄積する。算出部１２３は、データ記憶部１２２に蓄積された接続記録から、振り分けるべきサーバを算出し、接続を振り分ける。
【００３２】
データ取得部１２１が、ＣＰＵ利用率、ディスクＩ／Ｏ量、現在のスループット等に関するデータを取得する方法の一例を説明する。
請求項４で説明したと同じように、サーバのＣＰＵ利用率、ディスクＩ／Ｏ量、スループット等のデータを取得する手法は複数存在するが、それらのうちで主に用いられている手法は下記の方法である。
（ａ）ＳＮＭＰ（Ｓｉｍｐｌｅ  Ｎｅｔｗｏｒｋ  Ｍａｎａｇｅｍｅｎｔ  Ｐｒｏｔｏｃｏｌ）を利用し、サーバの各種情報を一元取得管理することができる。（ｂ）独自に管理システムを構築する手法：上記ＳＮＭＰを用いての管理が不可である場合には（例えば、ＳＮＭＰでは効率の悪い場合）、各サーバにリソースを報告するデーモンを配置し、ＣＰＵ利用率やディスクＩ／Ｏ量やトータルスループットを定期的に報告するプログラムにより、必要とされるデータを取得する方法がある。これは、振り分け装置１２から問い合わせがサーバのサーバリソース監視プログラムに送られると、このプログラムから振り分け装置１２に対して、それに対する返答が返される。
【００３３】
（プログラムとその記録媒体）
図５の接続の振り分け装置の処理フローまたは図６の請求項２に関する処理フローをそれぞれコンピュータで実行可能なプログラムに変換し、変換されたプログラムをＣＤ−ＲＯＭ等の記録媒体に格納しておく。これにより、ＤＮＳやその他のコンピュータにこの記録媒体を装着し、プログラムをコンピュータにインストールするか、ネットワークを介して他のコンピュータにダウンロードすることで、プログラムを実行させれば、本発明を容易に実現することができる。
【００３４】
【発明の効果】
以上説明したように、本発明によれば、サーバ上のキャッシュをできるだけ活用することにより、ディスクアクセスを最小限に抑えることができ、その結果、コンテンツ配信速度を高めることができる、という効果を奏する。
【図面の簡単な説明】
【図１】本発明の一実施例を示すサーバへの接続の振り分け装置のブロック図（請求項１）である。
【図２】本発明（請求項１）の手法と従来手法の性能差を示す図である。
【図３】図１における接続振り分け装置のブロック構成図である。
【図４】ディスクおよびメモリのデータ転送速度とアクセス時間を示す図である。
【図５】図３における接続振り分け装置の処理フローチャートである。
【図６】本発明の一実施例を示すタイムアウト時間の設定方法を示す処理フローチャート（請求項２）である。
【図７】本発明を用いた実際の処理の例を示す説明図（請求項４）である。
【図８】従来における複数サーバによる振り分け負荷分散の図である。
【図９】従来手法におけるディスク上のデータおよびキャッシュのイメージを示す図である。
【符号の説明】
１１…クライアント、１２Ａ…スイッチ、１３，１４，１５…サーバ、
１２…接続振り分け装置、１２１…データ取得部、１２２…データ記憶部、
１２３…算出部。
【図１】
0003800508.tif 000002
【図２】
0003800508.tif 000003
【図３】
0003800508.tif 000004
【図４】
0003800508.tif 000005
【図５】
0003800508.tif 000006
【図６】
0003800508.tif 000007
【図７】
0003800508.tif 000008
【図８】
0003800508.tif 000009
【図９】
0003800508.tif 000010