JP2013242751A - 負荷分散システムおよび負荷分散方法 - Google Patents
負荷分散システムおよび負荷分散方法 Download PDFInfo
- Publication number
- JP2013242751A JP2013242751A JP2012116323A JP2012116323A JP2013242751A JP 2013242751 A JP2013242751 A JP 2013242751A JP 2012116323 A JP2012116323 A JP 2012116323A JP 2012116323 A JP2012116323 A JP 2012116323A JP 2013242751 A JP2013242751 A JP 2013242751A
- Authority
- JP
- Japan
- Prior art keywords
- cache
- query request
- hit rate
- dns
- cache hit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
- Computer And Data Communications (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
【課題】実処理性能に合わせて適切にキャッシュサーバに対してクエリ要求を振り分けるとともに、リプレイスされたDNSキャッシュサーバ側の処理効率を向上させることを課題とする。
【解決手段】DNSシステム100では、各DNSキャッシュサーバ20A〜20Nは、クエリ要求を受け付けた回数に対して、該クエリ要求に対応するレコードがキャッシュされていた回数の割合であるキャッシュヒット率を算出する。そして、ロードバランサ10は、各DNSキャッシュサーバ20A〜20Nによって算出されたキャッシュヒット率をそれぞれ取得すし、取得された各キャッシュヒット率を比較し、比較された結果、キャッシュヒット率の値が高い各DNSキャッシュサーバ20A〜20Nほど、クエリ要求の振り分け先として優先的に決定するように制御する。
【選択図】 図1
【解決手段】DNSシステム100では、各DNSキャッシュサーバ20A〜20Nは、クエリ要求を受け付けた回数に対して、該クエリ要求に対応するレコードがキャッシュされていた回数の割合であるキャッシュヒット率を算出する。そして、ロードバランサ10は、各DNSキャッシュサーバ20A〜20Nによって算出されたキャッシュヒット率をそれぞれ取得すし、取得された各キャッシュヒット率を比較し、比較された結果、キャッシュヒット率の値が高い各DNSキャッシュサーバ20A〜20Nほど、クエリ要求の振り分け先として優先的に決定するように制御する。
【選択図】 図1
Description
本発明は、負荷分散システムおよび負荷分散方法に関する。
従来より、インターネット上のホスト名(ドメイン名)とIPアドレス(Internet Protocol Address)とを対応させるDNS(Domain Name System)と呼ばれるシステムがある。かかるDNSシステムは、例えば、DNSクライアントとDNS権威サーバとの間に、ロードバランサおよび複数のDNSキャッシュサーバを介して構成される。
DNS権威サーバは、ホスト名とIPアドレスとを対応付けた変換表(リソースレコードファイル)を管理している。そして、DNSクライアントからクエリ要求が発信されると、ロードバランサが複数のDNSキャッシュサーバのうちのいずれかのサーバにクエリ要求を振り分けて送信し、このクエリ要求を受信したキャッシュサーバは、該クエリ要求に対応するリソースレコードがキャッシュされている場合には、キャッシュされているリソースレコードを、ロードバランサを介してDNSクライアントに返信する。
また、キャッシュサーバは、クエリ要求に対応するリソースレコードがキャッシュされていない場合には、DNS権威サーバに対してクエリ要求を送信する。かかるクエリ要求を受信した権威サーバは、変換表(リソースレコードファイル)から対応するリソースレコードを検索し、検索結果としてのリソースレコードをクエリ応答としてDNSキャッシュサーバに送信する。そして、このクエリ応答を受信したDNSキャッシュサーバは、ロードバランサを介して、クエリ要求を発信したDNSクライアントにクエリ応答を送信する。
上述したように、ロードバランサは、DNSクライアントからのDNSクエリを受信後、所定のロジックによって複数のDNSキャッシュサーバのうちのいずれかのサーバにクエリ要求を振り分ける。例えば、ロードバランサでは、ラウンドロビンによりキャッシュサーバの振り分けを行う方法が知られている。つまり、ロードバランサは、ラウンドロビンにより、各DNSキャッシュサーバに対して、順番にクエリ要求を振り分ける。また、ロードバランサでは、CPU使用率に基づいて、キャッシュサーバの振り分けを行う方法が知られている。例えば、CPU使用率が低いキャッシュサーバを、優先的にDNSクエリの振り分け先として決定する。
"負荷分散入門"、[online]、[平成24年5月16日検索]、インターネット<http://fenics.fujitsu.com/products/ipcom/catalog/data/1/3.html>
しかしながら、上記した従来の技術では、ラウンドロビンやCPU使用率に基づいて、各キャッシュサーバに対してクエリ要求の振り分けを行うので、実処理性能に合わせて適切にキャッシュサーバに対してクエリ要求を振り分けることができないという課題があった。すなわち、DNSキャッシュサーバでは、キャッシュの蓄積具合によってその処理性能が変わるため、ラウンドロビンやCPU使用率に基づいて、各キャッシュサーバに対してクエリ要求を振り分けた場合には、実処理性能に合わせて適切にキャッシュサーバに対してクエリ要求を振り分けることができない。
また、設備故障などにより、DNSキャッシュサーバのリプレイス時にサーバ間でのキャッシュ蓄積状態の差に基づく性能差が発生した場合に、ラウンドロビンやCPU使用率に基づいて、各キャッシュサーバに対してクエリ要求を振り分けると、リプレイスされたサーバ側で処理のロスが発生してしまう。
そこで、この発明は、上述した従来技術の課題を解決するためになされたものであり、実処理性能に合わせて適切にキャッシュサーバに対してクエリ要求を振り分けるとともに、リプレイスされたサーバ側の処理効率を向上させることを目的とする。
上述した課題を解決し、目的を達成するため、負荷分散システムは、クライアント装置からのクエリ要求を複数のキャッシュサーバのうちのいずれかのキャッシュサーバに転送する負荷分散装置と、前記クエリ要求に対応するレコードをキャッシュする複数のキャッシュサーバとを備えた負荷分散システムであって、各キャッシュサーバは、前記クエリ要求を受け付けた回数に対して、該クエリ要求に対応するレコードがキャッシュされていた回数の割合であるキャッシュヒット率を算出する算出部を備え、前記負荷分散装置は、各キャッシュサーバによって算出されたキャッシュヒット率をそれぞれ取得する取得部と、前記取得部によって取得された各キャッシュヒット率を比較する比較部と、前記比較部によって比較された結果、キャッシュヒット率の値が高いキャッシュサーバほど、前記クエリ要求の振り分け先として優先的に決定するように制御する振分制御部と、を備えることを特徴とする。
また、負荷分散方法は、クライアント装置からのクエリ要求を複数のキャッシュサーバのうちのいずれかのキャッシュサーバに転送する負荷分散装置で実行される負荷分散方法であって、各キャッシュサーバによって算出されたキャッシュヒット率をそれぞれ取得する取得工程と、前記取得工程によって取得された各キャッシュヒット率を比較する比較工程と、前記比較工程によって比較された結果、キャッシュヒット率の値が高いキャッシュサーバほど、前記クエリ要求の振り分け先として優先的に決定するように制御する振分制御工程と、を含んだことを特徴とする。
本願に開示する負荷分散システムおよび負荷分散方法は、実処理性能に合わせて適切にキャッシュサーバに対してクエリ要求を振り分けるとともに、リプレイスされたサーバ側の処理効率を向上させることができるという効果を奏する。
以下に、本願に係る負荷分散システムおよび負荷分散方法の実施形態を図面に基づいて詳細に説明する。なお、この実施形態により本願に係る負荷分散システムおよび負荷分散方法が限定されるものではない。
[第一の実施の形態]
以下の実施の形態では、第一の実施の形態に係るDNSシステムの構成、ロードバランサの構成および処理の流れを順に説明し、最後に第一の実施の形態による効果を説明する。
以下の実施の形態では、第一の実施の形態に係るDNSシステムの構成、ロードバランサの構成および処理の流れを順に説明し、最後に第一の実施の形態による効果を説明する。
[第一の実施の形態に係るDNSシステムの構成]
まず、図1を用いて、第一の実施の形態に係るDNSシステムについて説明する。図1は、第一の実施の形態に係るDNSシステムの全体構成を示すシステム構成図である。
まず、図1を用いて、第一の実施の形態に係るDNSシステムについて説明する。図1は、第一の実施の形態に係るDNSシステムの全体構成を示すシステム構成図である。
図1に示すように、DNSシステム100には、ロードバランサ10、複数のDNSキャッシュサーバ20A〜20N、DNSクライアント30、および、DNS権威サーバ40が含まれ、DNSクライアント30とDNS権威サーバ40との間に、ロードバランサ10および複数のDNSキャッシュサーバ20A〜20Nを介して構成される。ここで、DNSシステム100とは、インターネット上のホスト名(ドメイン名)とIPアドレス(Internet Protocol Address)とを対応させるDNS(Domain Name System)と呼ばれるシステムである。なお、複数のDNSキャッシュサーバ20A〜20Nについて、特に区別なく説明する場合には、「DNSキャッシュサーバ20」と記載して説明する。
第一の実施の形態に係るロードバランサ10は、DNSクライアント30からDNSクエリを受信すると、キャッシュヒット率に基づいて、DNSクエリの振り分け先となるDNSキャッシュサーバを、複数のDNSキャッシュサーバ20A〜20Nから決定し、決定したDNSキャッシュサーバに対してDNSクエリを送信する。なお、ロードバランサ10の詳しい構成や処理については、後に図2等を用いて説明する。
DNSキャッシュサーバ20は、ホスト名とIPアドレスとを対応付けた変換表(リソースレコード)がキャッシュされたキャッシュメモリを有する。そして、DNSキャッシュサーバ20は、ロードバランサ10からクエリ要求を受信すると、クエリ要求に対応するリソースレコードがキャッシュされているか否かを判定する。この結果、DNSキャッシュサーバ20は、クエリ要求に対応するリソースレコードがキャッシュされている場合には、キャッシュされているリソースレコードをクエリ応答として、ロードバランサ10を介してDNSクライアント30に返信する。また、DNSキャッシュサーバ20は、クエリ要求に対応するリソースレコードがキャッシュされていない場合には、DNS権威サーバ40に対してクエリ要求を送信する。
DNSクライアント30は、ロードバランサ10に対してクエリ要求を送信する。DNS権威サーバ40は、ホスト名とIPアドレスとを対応付けた変換表(リソースレコードファイル)を管理している。そして、DNS権威サーバ40は、クエリ要求を受信すると、変換表(リソースレコードファイル)から対応するリソースレコードを検索し、検索結果としてのリソースレコードをクエリ応答としてDNSキャッシュサーバ20およびロードバランサ10を介して、DNSクライアント30に返信する。
[ロードバランサの構成]
次に、図2を用いて、図1に示したロードバランサ10の構成を説明する。図2は、第一の実施の形態に係るロードバランサの構成を示すブロック図である。図2に示すように、このロードバランサ10は、通信処理部11、制御部12、記憶部13を有し、複数のDNSキャッシュサーバ20A〜20NおよびDNSクライアント30と接続される。以下にこれらの各部の処理を説明する。
次に、図2を用いて、図1に示したロードバランサ10の構成を説明する。図2は、第一の実施の形態に係るロードバランサの構成を示すブロック図である。図2に示すように、このロードバランサ10は、通信処理部11、制御部12、記憶部13を有し、複数のDNSキャッシュサーバ20A〜20NおよびDNSクライアント30と接続される。以下にこれらの各部の処理を説明する。
通信処理部11は、接続される複数のDNSキャッシュサーバ20A〜20NおよびDNSクライアント30との間でやり取りする各種情報に関する通信を制御する。例えば、通信処理部11は、DNSキャッシュサーバ20A〜20Nに対してクエリ要求を送信し、また、DNSキャッシュサーバ20A〜20Nからクエリ応答を受信する。また、通信処理部11は、DNSクライアント30からクエリ要求を受信し、また、DNSクライアント30に対してクエリ応答を送信する。
記憶部13は、制御部12による各種処理に必要なデータおよびプログラムを格納するが、特に本発明に密接に関連するものとしては、キャッシュヒット率記憶部13aおよび起動時キャッシュヒット率履歴記憶部13bを有する。
キャッシュヒット率記憶部13aは、各DNSキャッシュサーバ20A〜20Nのキャッシュヒット率をそれぞれ記憶する。例えば、図3に例示するように、DNSキャッシュサーバ20を一意に識別する「キャッシュサーバID」と、各DNSキャッシュサーバ20の「キャッシュヒット率」とが対応付けて記憶されている。
図3の例を用いて説明すると、キャッシュヒット率記憶部13aは、キャッシュサーバID「1」のDNSキャッシュサーバのキャッシュヒット率が「40%」であり、キャッシュサーバID「2」のDNSキャッシュサーバのキャッシュヒット率が「30%」であり、キャッシュサーバID「3」のDNSキャッシュサーバのキャッシュヒット率が「50%」であり、キャッシュサーバID「4」のDNSキャッシュサーバのキャッシュヒット率が「66%」であり、キャッシュサーバID「5」のDNSキャッシュサーバのキャッシュヒット率が「75%」であることを記憶している。図3は、キャッシュヒット率記憶部に記憶されるテーブルの一例を示す図である。
起動時キャッシュヒット率履歴記憶部13bは、過去におけるDNSキャッシュサーバ20が起動する際のキャッシュヒット率の履歴を記憶する。このキャッシュヒット率の履歴は、後述する振分制御部12cによって参照されるデータである。
制御部12は、各種の処理手順などを規定したプログラムおよび所要データを格納するための内部メモリを有し、これらによって種々の処理を実行するが、特に本発明に密接に関連するものとしては、取得部12a、比較部12bおよび振分制御部12cを有する。
取得部12aは、各DNSキャッシュサーバ20A〜20Nによって算出されたキャッシュヒット率をそれぞれ取得する。例えば、取得部12aは、所定のタイミングで、各DNSキャッシュサーバ20A〜20Nに対してキャッシュヒット率を送信する旨の指示を送信し、各DNSキャッシュサーバ20A〜20Nからキャッシュヒット率を受信する。
その後、取得部12aは、受信したキャッシュヒット率をキャッシュヒット率記憶部13aに格納する。なお、ロードバランサ10から各DNSキャッシュサーバ20A〜20Nに対してキャッシュヒット率を要求せずに、各DNSキャッシュサーバ20A〜20Nが自動的にロードバランサ10へキャッシュヒット率を送信するようにしてもよい。
また、各DNSキャッシュサーバ20の算出部21では、クエリ要求を受け付けた回数に対して、該クエリ要求に対応するレコードがキャッシュされていた回数の割合であるキャッシュヒット率を算出する。具体的には、算出部21は、自装置内でのキャッシュヒット処理におけるキャッシュヒットカウンタと処理トラヒック総量カウンタを利用して、キャッシュヒット率を算出している。
比較部12bは、取得部12aによって取得された各キャッシュヒット率を比較する。具体的には、比較部12bは、クエリ要求を受信すると、キャッシュヒット率記憶部13aに記憶された各DNSキャッシュサーバ20A〜20Nのキャッシュヒット率の値を比較する。例えば、図3の例を用いて説明すると、比較部12bは、キャッシュヒット率記憶部13aに記憶された各DNSキャッシュサーバ20A〜20Nのキャッシュヒット率の値を比較し、キャッシュサーバID「5」、「4」、「3」、「1」、「2」の順に、キャッシュヒット率が高いものと判定する。
振分制御部12cは、比較部12bによって比較された結果、キャッシュヒット率の値が高いDNSキャッシュサーバ20ほど、DNSクエリの振り分け先として優先的に決定するように制御する。例えば、図3の例を用いて説明すると、振分制御部12cは、キャッシュサーバID「5」、「4」、「3」、「1」、「2」のDNSキャッシュサーバ20の順に、DNSクエリを優先的に振り分けるように制御する。
ここで、図4の例を用いて、振分制御について説明する。図4は、第一の実施の形態に係るロードバランサによる振分制御処理を説明する図である。図4に例示するように、最初に、ロードバランサ10は、キャッシュヒット率の情報を取得する。この時点では、キャッシュヒット率が「0%」である。その後、ロードバランサ10は、DNSキャッシュサーバ20に対してクエリ要求を送信する。DNSキャッシュサーバ20は、キャッシュヒットしなかったため、DNS権威サーバ40にクエリ要求を転送する。
そして、DNSキャッシュサーバ20は、DNS権威サーバ40からクエリ応答を受信し、ロードバランサ10にクエリ応答を送信する。その後、ロードバランサ10は、キャッシュヒット率の情報を取得する。この時点では、キャッシュヒット率がまだ「0%」である。続いて、ロードバランサ10は、DNSキャッシュサーバ20に対してクエリ要求を送信する。そして、DNSキャッシュサーバ20は、キャッシュヒットしたため、クエリ応答をロードバランサ10に返信する。その後、ロードバランサ10は、キャッシュヒット率の情報を取得する。この時点では、2回のうち1回がキャッシュヒットであったので、キャッシュヒット率が「50%」となる。ここで、キャッシュヒット率が増加したため、ロードバランサ10は、DNSキャッシュサーバ20に対するクエリ要求の送信割合を増加させる。
続いて、ロードバランサ10は、DNSキャッシュサーバ20に対してクエリ要求を送信する。そして、DNSキャッシュサーバ20は、キャッシュヒットしたため、クエリ応答をロードバランサ10に返信する。その後、ロードバランサ10は、キャッシュヒット率の情報を取得する。この時点では、3回のうち2回がキャッシュヒットであったので、キャッシュヒット率が「66%」となる。ここで、キャッシュヒット率がさらに増加したため、ロードバランサ10は、DNSキャッシュサーバ20に対するクエリ要求の送信割合を増加させる。
続いて、ロードバランサ10は、DNSキャッシュサーバ20に対してクエリ要求を送信する。そして、DNSキャッシュサーバ20は、キャッシュヒットしたため、クエリ応答をロードバランサ10に返信する。その後、ロードバランサ10は、キャッシュヒット率の情報を取得する。この時点では、4回のうち3回がキャッシュヒットであったので、キャッシュヒット率が「75%」となる。ここで、キャッシュヒット率がさらに増加したため、ロードバランサ10は、DNSキャッシュサーバ20に対するクエリ要求の送信割合を増加させる。
このように、キャッシュヒット率の増加に伴い、該当DNSキャッシュサーバへのクエリ要求の送信割合を増加させるので、実処理性能に合わせて適切にDNSキャッシュサーバに対してクエリ要求を振り分けることが可能である。また、リプレイスされた場合に、リプレイス直後でキャッシュヒット率が低ければ、DNSキャッシュサーバへのクエリ要求の送信割合を低く抑え、キャッシュヒット率の増加に伴い、該当DNSキャッシュサーバへのクエリ要求の送信割合を増加させるので、リプレイスされたサーバ側の処理効率を向上させることが可能である。
図2の説明に戻って、振分制御部12cは、DNSキャッシュサーバ20が起動された直後の場合には、取得されたキャッシュヒット率に代えて、過去の履歴に基づくキャッシュヒット率を用いて、クエリ要求の振分先を制御する。具体的には、振分制御部12cは、DNSキャッシュサーバ20がリプレイスにより起動された直後の場合には、起動時キャッシュヒット率履歴記憶部13から過去におけるDNSキャッシュサーバ20が起動する際のキャッシュヒット率の履歴を取得する。振分制御部12cは、この履歴の統計に基づく、想定ヒット率を算出し、取得部12aによって取得されたキャッシュヒット率に代えて、想定ヒット率を用いて、クエリ要求の振分先を制御する。
つまり、DNSキャッシュサーバ20がリプレイスにより起動された直後は、統計データ母数が少なくキャッシュヒット率の変動が激しくなるため、より正確なキャッシュヒット率に基づく振分制御処理を行うために、過去の履歴を利用する。このため、リプレイスされたサーバ側の処理効率をより向上させることが可能である。
[ロードバランサによる処理]
次に、図5を用いて、第一の実施形態に係るロードバランサ10による処理を説明する。図5は、第一の実施の形態に係るロードバランサによる振分制御処理の流れを示すフローチャートである。
次に、図5を用いて、第一の実施形態に係るロードバランサ10による処理を説明する。図5は、第一の実施の形態に係るロードバランサによる振分制御処理の流れを示すフローチャートである。
図5に示すように、ロードバランサ10の取得部12aは、各DNSキャッシュサーバ20A〜20Nによって算出されたキャッシュヒット率をそれぞれ取得する(ステップS101)。例えば、取得部12aは、所定のタイミングで、各DNSキャッシュサーバ20A〜20Nに対してキャッシュヒット率を送信する旨の指示を送信し、各DNSキャッシュサーバ20A〜20Nからキャッシュヒット率を受信する。
そして、比較部12bは、取得部12aによって取得された各キャッシュヒット率を比較する(ステップS102)。具体的には、比較部12bは、クエリ要求を受信すると、キャッシュヒット率記憶部13aに記憶された各DNSキャッシュサーバ20A〜20Nのキャッシュヒット率の値を比較する。
そして、振分制御部12cは、比較部12bによって比較された結果、キャッシュヒット率の値が高いDNSキャッシュサーバ20ほど、DNSクエリの振分先として優先的に決定するように制御する(ステップS103)。
[第一の実施の形態の効果]
上述してきたように、DNSシステム100では、各DNSキャッシュサーバ20A〜20Nは、クエリ要求を受け付けた回数に対して、該クエリ要求に対応するレコードがキャッシュされていた回数の割合であるキャッシュヒット率を算出する。そして、ロードバランサ10は、各DNSキャッシュサーバ20A〜20Nによって算出されたキャッシュヒット率をそれぞれ取得し、取得された各キャッシュヒット率を比較し、比較された結果、キャッシュヒット率の値が高い各DNSキャッシュサーバ20A〜20Nほど、クエリ要求の振り分け先として優先的に決定するように制御する。
上述してきたように、DNSシステム100では、各DNSキャッシュサーバ20A〜20Nは、クエリ要求を受け付けた回数に対して、該クエリ要求に対応するレコードがキャッシュされていた回数の割合であるキャッシュヒット率を算出する。そして、ロードバランサ10は、各DNSキャッシュサーバ20A〜20Nによって算出されたキャッシュヒット率をそれぞれ取得し、取得された各キャッシュヒット率を比較し、比較された結果、キャッシュヒット率の値が高い各DNSキャッシュサーバ20A〜20Nほど、クエリ要求の振り分け先として優先的に決定するように制御する。
このように、キャッシュヒット率が低ければ、DNSキャッシュサーバへのクエリ要求の送信割合を低く抑え、キャッシュヒット率の増加に伴い、該当DNSキャッシュサーバへのクエリ要求の送信割合を増加させるので、実処理性能に合わせて適切にキャッシュサーバに対してクエリ要求を振り分けるとともに、リプレイスされたDNSキャッシュサーバ20側の処理効率を向上させることが可能となる。
また、第一の実施の形態によれば、DNSシステム100では、ロードバランサ10は、キャッシュサーバが起動された直後の場合には、取得したキャッシュヒット率に代えて、過去の履歴に基づくキャッシュヒット率を用いて、クエリ要求の振分先を制御する。つまり、DNSキャッシュサーバ20がリプレイスにより起動された直後は、統計データ母数が少なくキャッシュヒット率の変動が激しくなるため、より正確なキャッシュヒット率に基づく振分制御処理を行うために、過去の履歴を利用する。このため、リプレイスされたサーバ側の処理効率をより向上させることが可能である。
[第二の実施の形態]
ところで、上記の第一の実施の形態では、ロードバランサがDNSキャッシュサーバからキャッシュヒット率を取得する場合を説明したが、これに限定されるものではなく、ロードバランサがキャッシュヒット率を算出するようにしてもよい。
ところで、上記の第一の実施の形態では、ロードバランサがDNSキャッシュサーバからキャッシュヒット率を取得する場合を説明したが、これに限定されるものではなく、ロードバランサがキャッシュヒット率を算出するようにしてもよい。
そこで、以下の第二の実施の形態では、ロードバランサがキャッシュヒット率を算出する場合として、図6〜図8を用いて、第二の実施の形態におけるロードバランサの概要と特徴、構成および処理について説明する。図6は、第二の実施の形態に係るロードバランサの構成を示すブロック図である。図7は、第二の実施の形態に係るロードバランサによる振分制御処理の流れを示すフローチャートである。図8は、第二の実施の形態に係るロードバランサによる振分制御処理の流れを示すフローチャートである。
まず、図6を用いて、第二の実施の形態に係るロードバランサ10の構成を説明する。第二の実施の形態に係るロードバランサ10は、図2に示した第一の実施の形態に係るロードバランサ10と比較して、取得部12aに代えて、算出部12dを新たに備える点が相違する。
算出部12dは、各DNSキャッシュサーバ20A〜20Nについて、DNSキャッシュサーバのクエリ要求に対する処理に関する情報を用いて、DNSキャッシュサーバがクエリ要求を受け付けた回数に対して、該クエリ要求に対応するレコードがキャッシュされていた回数の割合であるキャッシュヒット率をそれぞれ算出する。
具体的には、算出部12dは、クエリ要求をキャッシュサーバが受け付けてから該クエリ要求に対する応答を返すまでの処理時間に関する情報(例えば、TAT(Turn-Around Time))に基づいて、キャッシュヒット率を算出する。
例えば、算出部12dは、DNSクエリの応答TATが所定の閾値よりも長い場合には、キャッシュミスと判断し、DNSクエリの応答TATが所定の閾値よりも短い場合には、キャッシュヒットと判断する。そして、算出部12dは、全体のクエリ応答を受け付けた回数に対して、キャッシュヒットと判断された回数の割合をキャッシュヒット率として算出する。つまり、通常、キャッシュヒットした場合には、応答TATが短く、キャッシュミスの場合には、DNS権威サーバ40にクエリ要求を転送するので、応答TATが長くなるため、応答TATからキャッシュヒットまたはキャッシュミスを推測することが可能である。
また、算出部12dは、応答TATなどの処理時間ではなく、各DNSキャッシュサーバ20A〜20Nについて、DNSキャッシュサーバが受け付けたクエリ要求に対する応答に含まれるキャッシュの有効期限に関する情報(例えば、TTL値)に基づいて、キャッシュヒット率を算出してもよい。
例えば、算出部12dは、TTL値が所定の閾値よりも短い場合には、キャッシュミスと判断し、TTL値が所定の閾値よりも長い場合には、キャッシュヒットと判断する。そして、算出部12dは、全体のクエリ応答を受け付けた回数に対して、キャッシュヒットと判断された回数の割合をキャッシュヒット率として算出する。つまり、TTL値が短い場合には、もうすぐキャッシュが消されることが分かっており、消された後はキャッシュミスとなるため、ここではキャッシュミスと判断してキャッシュヒット率を算出する。
その後、算出部12dは、キャッシュヒット率を算出した後、キャッシュヒット率をキャッシュヒット率記憶部13aに格納する。
比較部12bは、算出部12dによって算出された各キャッシュヒット率を比較する。振分制御部12cは、第一の実施の形態と同様に、比較部12bによって比較された結果、キャッシュヒット率の値が高いDNSキャッシュサーバ20ほど、クエリ要求の振り分け先として優先的に決定する。また、振分制御部12cは、キャッシュサーバが起動された直後の場合には、算出部12dによって算出されたキャッシュヒット率に代えて、過去の履歴に基づくキャッシュヒット率を用いて、クエリ要求の振分先を制御する。
次に、図7および図8を用いて、第二の実施の形態に係るロードバランサ10の処理を説明する。図7に示すように、第二の実施の形態に係るロードバランサ10の算出部12dは、DNSクエリの応答TATが所定の閾値より長いか否かを判定する(ステップS201)。この結果、算出部12dは、DNSクエリの応答TATが所定の閾値よりも長い場合には(ステップS201肯定)、キャッシュミスと判別し(ステップS202)、DNSクエリの応答TATが所定の閾値よりも短い場合には(ステップS201否定)、キャッシュヒットと判別する(ステップS203)。
そして、算出部12dは、全体のクエリ応答を受け付けた回数に対して、キャッシュヒットと判断された回数の割合をキャッシュヒット率として算出する(ステップS204)。
そして、比較部12bは、算出部12dによって算出された各キャッシュヒット率を比較する(ステップS205)。具体的には、比較部12bは、クエリ要求を受信すると、キャッシュヒット率記憶部13aに記憶された各DNSキャッシュサーバ20A〜20Nのキャッシュヒット率の値を比較する。
そして、振分制御部12cは、比較部12bによって比較された結果、キャッシュヒット率の値が高いDNSキャッシュサーバ20ほど、DNSクエリの振り分け先として優先的に決定するように制御する(ステップS206)。
また、図8に示すように、第二の実施の形態に係るロードバランサ10の算出部12dは、TTL値が比較値よりも短いか否かを判定する(ステップS301)。この結果、算出部12dは、TTL値が所定の閾値よりも短い場合には(ステップS301肯定)、キャッシュミスと判別し(ステップS302)、TTL値が所定の閾値よりも長い場合には(ステップS301否定)、キャッシュヒットと判別する(ステップS303)。
そして、算出部12dは、全体のクエリ応答を受け付けた回数に対して、キャッシュヒットと判断された回数の割合をキャッシュヒット率として算出する(ステップS304)。
そして、比較部12bは、算出部12dによって算出された各キャッシュヒット率を比較する(ステップS305)。具体的には、比較部12bは、クエリ要求を受信すると、キャッシュヒット率記憶部13aに記憶された各DNSキャッシュサーバ20A〜20Nのキャッシュヒット率の値を比較する。
そして、振分制御部12cは、比較部12bによって比較された結果、キャッシュヒット率の値が高いDNSキャッシュサーバ20ほど、DNSクエリの振り分け先として優先的に決定するように制御する(ステップS306)。
[第二の実施の形態の効果]
上述してきたように、第二の実施の形態に係るロードバランサ10では、各DNSキャッシュサーバ20A〜20Nについて、DNSキャッシュサーバ20のクエリ要求に対する処理に関する情報を用いて、DNSキャッシュサーバ20がクエリ要求を受け付けた回数に対して、該クエリ要求に対応するレコードがキャッシュされていた回数の割合であるキャッシュヒット率をそれぞれ算出する。そして、ロードバランサ10は、算出された各キャッシュヒット率を比較し、比較された結果、キャッシュヒット率の値が高いDNSキャッシュサーバ20ほど、クエリ要求の振り分け先として優先的に決定するように制御する。
上述してきたように、第二の実施の形態に係るロードバランサ10では、各DNSキャッシュサーバ20A〜20Nについて、DNSキャッシュサーバ20のクエリ要求に対する処理に関する情報を用いて、DNSキャッシュサーバ20がクエリ要求を受け付けた回数に対して、該クエリ要求に対応するレコードがキャッシュされていた回数の割合であるキャッシュヒット率をそれぞれ算出する。そして、ロードバランサ10は、算出された各キャッシュヒット率を比較し、比較された結果、キャッシュヒット率の値が高いDNSキャッシュサーバ20ほど、クエリ要求の振り分け先として優先的に決定するように制御する。
このように、キャッシュヒット率が低ければ、DNSキャッシュサーバ20へのクエリ要求の送信割合を低く抑え、キャッシュヒット率の増加に伴い、該当DNSキャッシュサーバへのクエリ要求の送信割合を増加させるので、実処理性能に合わせて適切にキャッシュサーバに対してクエリ要求を振り分けるとともに、リプレイスされたDNSキャッシュサーバ20側の処理効率を向上させることが可能となる。また、DNSキャッシュサーバ20にキャッシュヒット率を算出させることなく、ロードバランサ10側でヒット率を算出することが可能となる。
また、第二の実施の形態に係るロードバランサ10では、各DNSキャッシュサーバ20について、クエリ要求をDNSキャッシュサーバ20が受け付けてから該クエリ要求に対する応答を返すまでの処理時間に基づいて、キャッシュヒット率を算出する。このため、DNSキャッシュサーバ20にキャッシュヒット率を算出させることなく、ロードバランサ10が取得可能な情報を用いて、ロードバランサ10側でヒット率を算出することが可能となる。
また、第二の実施の形態に係るロードバランサ10では、各DNSキャッシュサーバ20について、DNSキャッシュサーバ20が受け付けたクエリ要求に対する応答に含まれるキャッシュの有効期限に関する情報に基づいて、キャッシュヒット率を算出する。このため、DNSキャッシュサーバ20にキャッシュヒット率を算出させることなく、ロードバランサ10が取得可能な情報を用いて、ロードバランサ10側でヒット率を算出することが可能となる。
また、第二の実施の形態に係るロードバランサ10では、DNSキャッシュサーバ20が起動された直後の場合には、算出されたキャッシュヒット率に代えて、過去の履歴に基づくキャッシュヒット率を用いて、クエリ要求の振分先を制御する。このため、リプレイスされたサーバ側の処理効率をより向上させることが可能である。
[第三の実施の形態]
さて、これまで本発明の実施の形態について説明したが、本発明は上述した実施の形態以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では第三の実施の形態として本発明に含まれる他の第三の実施の形態を説明する。
さて、これまで本発明の実施の形態について説明したが、本発明は上述した実施の形態以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では第三の実施の形態として本発明に含まれる他の第三の実施の形態を説明する。
(1)最大TTL値
第三の実施の形態では、各ドメインの過去のキャッシュデータにおける最大TTL値を保持し、ヒット率算出時の比較データとして用いて、クエリ応答に含まれるTTL値が最大TTL値と同一値と判定するようにしてもよい。
第三の実施の形態では、各ドメインの過去のキャッシュデータにおける最大TTL値を保持し、ヒット率算出時の比較データとして用いて、クエリ応答に含まれるTTL値が最大TTL値と同一値と判定するようにしてもよい。
例えば、各ドメインの過去のキャッシュデータにおける最大TTL値を保持し、ヒット率算出時の比較データとして用いて、クエリ応答に含まれるTTL値が最大TTL値と同一値だった場合に、キャッシュヒットしなかったと判定してキャッシュヒット率を算出する。つまり、最大TTLと同一値である場合には、今回のクエリ要求キャッシュによりキャッシュがなされたものと判定し、キャッシュヒットしなかったものと判定する。
これにより、DNSキャッシュサーバにキャッシュヒット率を算出させることなく、ロードバランサ10が取得可能な情報を用いて、ロードバランサ側でヒット率を算出するので、DNSキャッシュサーバの負担を軽減することが可能となる。
(2)システム構成等
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、取得部12aと比較部12bを統合してもよい。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、取得部12aと比較部12bを統合してもよい。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
また、本実施形態において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともでき、あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
(3)プログラム
また、上記実施形態において説明したロードバランサ10が実行する処理をコンピュータが実行可能な言語で記述したプログラムを作成することもできる。例えば、第一の実施形態に係るロードバランサ10が実行する処理をコンピュータが実行可能な言語で記述した負荷分散プログラムを作成することもできる。この場合、コンピュータが負荷分散プログラムを実行することにより、上記実施形態と同様の効果を得ることができる。さらに、かかる負荷分散プログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録され負荷分散プログラムをコンピュータに読み込ませて実行することにより上記第一の実施形態と同様の処理を実現してもよい。以下に、図2に示したロードバランサ10と同様の機能を実現する負荷分散プログラムを実行するコンピュータの一例を説明する。
また、上記実施形態において説明したロードバランサ10が実行する処理をコンピュータが実行可能な言語で記述したプログラムを作成することもできる。例えば、第一の実施形態に係るロードバランサ10が実行する処理をコンピュータが実行可能な言語で記述した負荷分散プログラムを作成することもできる。この場合、コンピュータが負荷分散プログラムを実行することにより、上記実施形態と同様の効果を得ることができる。さらに、かかる負荷分散プログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録され負荷分散プログラムをコンピュータに読み込ませて実行することにより上記第一の実施形態と同様の処理を実現してもよい。以下に、図2に示したロードバランサ10と同様の機能を実現する負荷分散プログラムを実行するコンピュータの一例を説明する。
図9は、負荷分散プログラムを実行するコンピュータ1000を示す図である。図9に例示するように、コンピュータ1000は、例えば、メモリ1010と、CPU1020と、ハードディスクドライブインタフェース1030と、ディスクドライブインタフェース1040と、シリアルポートインタフェース1050と、ビデオアダプタ1060と、ネットワークインタフェース1070とを有し、これらの各部はバス1080によって接続される。
メモリ1010は、図9に例示するように、ROM(Read Only Memory)1011及びRAM1012を含む。ROM1011は、例えば、BIOS(Basic Input Output System)等のブートプログラムを記憶する。ハードディスクドライブインタフェース1030は、図9に例示するように、ハードディスクドライブ1031に接続される。ディスクドライブインタフェース1040は、図9に例示するように、ディスクドライブ1041に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブに挿入される。シリアルポートインタフェース1050は、図9に例示するように、例えばマウス1051、キーボード1052に接続される。ビデオアダプタ1060は、図9に例示するように、例えばディスプレイ1061に接続される。
ここで、図9に例示するように、ハードディスクドライブ1031は、例えば、OS1091、アプリケーションプログラム1092、プログラムモジュール1093、プログラムデータ1094を記憶する。すなわち、上記の負荷分散プログラムは、コンピュータ1000によって実行される指令が記述されたプログラムモジュールとして、例えばハードディスクドライブ1031に記憶される。
また、上記実施形態で説明した各種データは、プログラムデータとして、例えばメモリ1010やハードディスクドライブ1031に記憶される。そして、CPU1020が、メモリ1010やハードディスクドライブ1031に記憶されたプログラムモジュール1093やプログラムデータ1094を必要に応じてRAM1012に読み出し、取得手順、比較手順、振分制御手順を実行する。
なお、負荷分散プログラムに係るプログラムモジュール1093やプログラムデータ1094は、ハードディスクドライブ1031に記憶される場合に限られず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ等を介してCPU1020によって読み出されてもよい。あるいは、負荷分散プログラムに係るプログラムモジュール1093やプログラムデータ1094は、ネットワーク(LAN(Local Area Network)、WAN(Wide Area Network)等)を介して接続された他のコンピュータに記憶され、ネットワークインタフェース1070を介してCPU1020によって読み出されてもよい。
10 ロードバランサ
11 通信処理部
12 制御部
12a 取得部
12b 比較部
12c 振分制御部
12d 算出部
13 記憶部
13a キャッシュヒット率記憶部
13b 起動時キャッシュ率履歴記憶部
20,20A〜20N DNSキャッシュサーバ
21 算出部
30 DNSクライアント
40 DNS権威サーバ
11 通信処理部
12 制御部
12a 取得部
12b 比較部
12c 振分制御部
12d 算出部
13 記憶部
13a キャッシュヒット率記憶部
13b 起動時キャッシュ率履歴記憶部
20,20A〜20N DNSキャッシュサーバ
21 算出部
30 DNSクライアント
40 DNS権威サーバ
Claims (7)
- クライアント装置からのクエリ要求を複数のキャッシュサーバのうちのいずれかのキャッシュサーバに転送する負荷分散装置と、前記クエリ要求に対応するレコードをキャッシュする複数のキャッシュサーバとを備えた負荷分散システムであって、
各キャッシュサーバは、
前記クエリ要求を受け付けた回数に対して、該クエリ要求に対応するレコードがキャッシュされていた回数の割合であるキャッシュヒット率を算出する算出部を備え、
前記負荷分散装置は、
各キャッシュサーバによって算出されたキャッシュヒット率をそれぞれ取得する取得部と、
前記取得部によって取得された各キャッシュヒット率を比較する比較部と、
前記比較部によって比較された結果、キャッシュヒット率の値が高いキャッシュサーバほど、前記クエリ要求の振り分け先として優先的に決定するように制御する振分制御部と、
を備えることを特徴とする負荷分散システム。 - クライアント装置からのクエリ要求を複数のキャッシュサーバのうちのいずれかのキャッシュサーバに転送する負荷分散装置と、前記クエリ要求に対応するレコードをキャッシュする複数のキャッシュサーバとを備えた負荷分散システムであって、
前記負荷分散装置は、
各キャッシュサーバについて、キャッシュサーバのクエリ要求に対する処理に関する情報を用いて、キャッシュサーバがクエリ要求を受け付けた回数に対して、該クエリ要求に対応するレコードがキャッシュされていた回数の割合であるキャッシュヒット率をそれぞれ算出する算出部と、
前記算出部によって算出された各キャッシュヒット率を比較する比較部と、
前記比較部によって比較された結果、キャッシュヒット率の値が高いキャッシュサーバほど、前記クエリ要求の振り分け先として優先的に決定するように制御する振分制御部と、
を備えることを特徴とする負荷分散システム。 - 前記算出部は、各キャッシュサーバについて、前記クエリ要求をキャッシュサーバが受け付けてから該クエリ要求に対する応答を返すまでの処理時間に基づいて、前記キャッシュヒット率を算出することを特徴とする請求項2に記載の負荷分散システム。
- 前記算出部は、各キャッシュサーバについて、キャッシュサーバが受け付けたクエリ要求に対する応答に含まれるキャッシュの有効期限に関する情報に基づいて、前記キャッシュヒット率を算出することを特徴とする請求項2に記載の負荷分散システム。
- 前記振分制御部は、前記キャッシュサーバが起動された直後の場合には、前記算出部によって算出されたキャッシュヒット率に代えて、過去の履歴に基づくキャッシュヒット率を用いて、前記クエリ要求の振分先を制御することを特徴とする請求項2〜4のいずれか一つに記載の負荷分散システム。
- クライアント装置からのクエリ要求を複数のキャッシュサーバのうちのいずれかのキャッシュサーバに転送する負荷分散装置で実行される負荷分散方法であって、
各キャッシュサーバによって算出されたキャッシュヒット率をそれぞれ取得する取得工程と、
前記取得工程によって取得された各キャッシュヒット率を比較する比較工程と、
前記比較工程によって比較された結果、キャッシュヒット率の値が高いキャッシュサーバほど、前記クエリ要求の振り分け先として優先的に決定するように制御する振分制御工程と、
を含んだことを特徴とする負荷分散方法。 - クライアント装置からのクエリ要求を複数のキャッシュサーバのうちのいずれかのキャッシュサーバに転送する負荷分散装置で実行される負荷分散方法であって、
各キャッシュサーバについて、キャッシュサーバのクエリ要求に対する処理に関する情報を用いて、キャッシュサーバがクエリ要求を受け付けた回数に対して、該クエリ要求に対応するレコードがキャッシュされていた回数の割合であるキャッシュヒット率を算出する算出工程と、
前記算出工程によって算出された各キャッシュヒット率を比較する比較工程と、
前記比較工程によって比較された結果、キャッシュヒット率の値が高いキャッシュサーバほど、前記クエリ要求の振り分け先として優先的に決定するように制御する振分制御工程と、
を含んだことを特徴とする負荷分散方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012116323A JP2013242751A (ja) | 2012-05-22 | 2012-05-22 | 負荷分散システムおよび負荷分散方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012116323A JP2013242751A (ja) | 2012-05-22 | 2012-05-22 | 負荷分散システムおよび負荷分散方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2013242751A true JP2013242751A (ja) | 2013-12-05 |
Family
ID=49843572
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012116323A Pending JP2013242751A (ja) | 2012-05-22 | 2012-05-22 | 負荷分散システムおよび負荷分散方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2013242751A (ja) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005092862A (ja) * | 2003-08-11 | 2005-04-07 | Hitachi Ltd | 負荷分散方法及びクライアント・サーバシステム |
JP2008310555A (ja) * | 2007-06-14 | 2008-12-25 | Asyst Technologies Japan Inc | プロセス状態監視装置 |
-
2012
- 2012-05-22 JP JP2012116323A patent/JP2013242751A/ja active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005092862A (ja) * | 2003-08-11 | 2005-04-07 | Hitachi Ltd | 負荷分散方法及びクライアント・サーバシステム |
JP2008310555A (ja) * | 2007-06-14 | 2008-12-25 | Asyst Technologies Japan Inc | プロセス状態監視装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6974218B2 (ja) | ストレージシステム及びその動作方法 | |
US8612413B2 (en) | Distributed data cache for on-demand application acceleration | |
US9860316B2 (en) | Routing network traffic based on social information | |
JP5901024B2 (ja) | コンテンツ配信に利用される動的バインド | |
JP2019212336A (ja) | 分散キャッシュクラスタ管理 | |
US20130007253A1 (en) | Method, system and corresponding device for load balancing | |
US9432449B2 (en) | Managing connection failover in a load balancer | |
EP2824872B1 (en) | Host providing system and communication control method | |
US9110696B2 (en) | Thin client system, connection management server, connection management method and connection management program | |
JP6972714B2 (ja) | データ取得プログラム、装置、及び方法 | |
US8751661B1 (en) | Sticky routing | |
JPH1165969A (ja) | サーバ装置および通信接続方法並びに通信の接続を行うプログラムを記録した記録媒体 | |
US20150142845A1 (en) | Smart database caching | |
JP6272190B2 (ja) | 計算機システム、計算機、負荷分散方法及びそのプログラム | |
US20160080262A1 (en) | Domain name collaboration service using domain name dependency server | |
US8854977B2 (en) | Relay node | |
JP2012146083A (ja) | セッション管理システム、セッション管理装置、サーバ装置およびセッション管理方法 | |
US20150006622A1 (en) | Web contents transmission method and apparatus | |
WO2013153694A1 (ja) | クライアントとサーバ間の通信を中継する通信装置、システム、及び方法 | |
US10841394B2 (en) | Server for caching session information set and method of controlling cache of session information set | |
US11190583B2 (en) | Load balancing device, communication system, control method, and program | |
JP2006260059A (ja) | サーバ装置 | |
US20200159511A1 (en) | Methods Circuits Devices Systems and Associated Computer Executable Code for Providing Application Data Services to a Mobile Communication Device | |
JP2006301769A (ja) | サーバ装置 | |
JP2013242751A (ja) | 負荷分散システムおよび負荷分散方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20140926 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20150514 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20150609 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20151104 |