(57)【特許請求の範囲】
【請求項１】
クライアントがネットワーク経由でサーバに接続する際に該サーバ側で必要な接続リソースについて、該接続リソースの使用状況を取得して出力するサーバの接続リソース使用状況出力方法であって、
前記サーバは、接続要求を拒否したクライアントのクライアント識別情報を記憶するための接続拒否リストを記憶する接続拒否リスト記憶手段およびクライアントとの接続に使用されている接続リソースの使用数を記憶する接続リソース使用数記憶手段を備え、
前記サーバが備える接続リソース使用状況計測手段が、クライアントからの接続要求や切断要求に応じて変化する接続リソース使用数を計測し、計測した結果の接続リソース使用数を前記接続リソース使用数記憶手段に記憶するステップと、
前記サーバが備える接続拒否状況取得手段が、接続リソースが全て使用中のためクライアントからの接続要求を拒否した場合に当該接続要求を拒否したクライアントのクライアント識別情報が既に前記接続拒否リストに記憶されているか否かをチェックし、記憶されていないときは、当該クライアント識別情報を前記接続拒否リストに記憶するステップと、
前記サーバが備える接続拒否リスト更新手段が、前記接続拒否リストに記憶されているクライアント識別情報を持つクライアントが接続成功したとき、そのクライアント識別情報を前記接続拒否リストから削除するステップと、
前記サーバが備えるピーク区間検出手段が、クライアントからの接続要求時に、前記接続リソース使用数記憶手段に記憶されている現在の接続リソース使用数が前記サーバが予め用意している接続リソース数に達したかを判断し、クライアントからの切断要求時に、空いている接続リソース数が前記接続拒否リストに記憶されているクライアントの数を超えたかを判断し、現在の前記接続リソース使用数が前記サーバが予め用意している接続リソース数に達してから、空いている接続リソース数が前記接続拒否リストに記憶されているクライアントの数を超えるまでを、一つのピーク区間と判断するステップと、
前記サーバが備える接続拒否リストクリア手段が、前記ピーク区間終了時に、前記接続拒否リストをクリアするステップと、
前記サーバが備える接続状況記憶手段が、クライアントからの接続要求時またはクライアントからの切断要求時に、そのときの時刻とともに前記接続リソース使用数および前記接続拒否リストに記憶されているクライアントの数を記憶するステップと、
前記サーバが備える出力手段が、
（１）前記サーバが予め用意している接続リソース数から、前記接続状況記憶手段に記憶されている前記接続リソース使用数のうちユーザにより指定された対象期間の接続リソース使用数の最大値を、減算して求める接続リソースの余剰数、
（２）ユーザにより指定された対象期間において前記接続拒否リストに記憶されているクライアントの数の最大値である接続リソースの不足数、または、
（３）前記接続状況記憶手段の記憶内容を、
前記サーバの接続リソースの使用状況として出力するステップと
を備えることを特徴とするサーバの接続リソース使用状況出力方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、サーバリソースの見積もりを行う技術に関し、特にクライアントが接続時に必要となるリソース数を見積もる方法に関するものである。
【背景技術】
【０００２】
近年、ネットワークの大規模化やクライアント数の増加により、サーバリソースの効率的利用が求められている。サーバリソースの中にはクライアントが接続するためのリソースがあり、これを効率的に利用するためには、予め必要十分な接続リソース数を見積もっておくことが必要となる。見積もり精度を高めることにより、最小限のコストで最大限のパフォーマンスが実現できる。ここで、接続リソースとしては、回線の数や帯域、使用メモリ容量などが相当する。
【０００３】
従来技術における接続リソース数の見積もり方法としては、以下に示すものが知られている。
（１）クライアント側で、接続要求に対するサーバの応答（接続成功、接続失敗など）を計測する。
（２）サーバとクライアントの間で通信（接続パケット、切断パケットなど）を監視する。
（３）サーバ上にリソース使用率を計測するプログラムを置く。
【０００４】
なお、本発明に関連する公知技術文献としては下記の特許文献１がある。これは、クライアントからサーバへの通信を監視することにより、サーバが高負荷か否かを判断するものであり、上記（２）の技術に相当するものである。
【特許文献１】特開２０００−９２０５２
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ところで、接続失敗や切断が発生する契機は、一般的に接続リソース不足のときだけではない。このため、上記（１）のようにクライアント側で計測する方式や、上記（２）のようにサーバとクライアントの間で通信を監視する方式では、接続リソース数の見積もりとして使用するには誤差が大きい。また、上記（３）のようにサーバ上で計測する方式も、従来は外付けのプログラムで計測していたため、接続失敗や切断が発生した理由、及び接続リソースの正確な使用状況を得ることは困難であった。
【０００６】
一方、サーバリソースの効率的使用のために、負荷分散を行う方法もある。しかし、負荷分散を行うためには複数のサーバや負荷分散装置が必要であり、導入コストが掛かるという問題がある。
【０００７】
本発明の目的は、負荷分散など導入コストが掛かる方法を取らなくても、サーバの接続リソースを効率的に利用するために、サーバ管理者が精度の高い見積もり情報を容易に取得することができる、サーバの接続リソース見積もり方法を提供することにある。
【課題を解決するための手段】
【０００８】
上記目的を達成するために、本発明は、クライアントがネットワーク経由でサーバに接続する際に該サーバ側で必要な接続リソースについて、該接続リソースの使用状況を取得して出力するサーバの接続リソース使用状況出力方法であって、前記サーバは、接続要求を拒否したクライアントのクライアント識別情報を記憶するための接続拒否リストを記憶する接続拒否リスト記憶手段およびクライアントとの接続に使用されている接続リソースの使用数を記憶する接続リソース使用数記憶手段を備え、前記サーバが備える接続リソース使用状況計測手段が、クライアントからの接続要求や切断要求に応じて変化する接続リソース使用数を計測し、計測した結果の接続リソース使用数を前記接続リソース使用数記憶手段に記憶するステップと、前記サーバが備える接続拒否状況取得手段が、接続リソースが全て使用中のためクライアントからの接続要求を拒否した場合に当該接続要求を拒否したクライアントのクライアント識別情報が既に前記接続拒否リストに記憶されているか否かをチェックし、記憶されていないときは、当該クライアント識別情報を前記接続拒否リストに記憶するステップと、前記サーバが備える接続拒否リスト更新手段が、前記接続拒否リストに記憶されているクライアント識別情報を持つクライアントが接続成功したとき、そのクライアント識別情報を前記接続拒否リストから削除するステップと、前記サーバが備えるピーク区間検出手段が、クライアントからの接続要求時に、前記接続リソース使用数記憶手段に記憶されている現在の接続リソース使用数が前記サーバが予め用意している接続リソース数に達したかを判断し、クライアントからの切断要求時に、空いている接続リソース数が前記接続拒否リストに記憶されているクライアントの数を超えたかを判断し、現在の前記接続リソース使用数が前記サーバが予め用意している接続リソース数に達してから、空いている接続リソース数が前記接続拒否リストに記憶されているクライアントの数を超えるまでを、一つのピーク区間と判断するステップと、前記サーバが備える接続拒否リストクリア手段が、前記ピーク区間終了時に、前記接続拒否リストをクリアするステップと、前記サーバが備える接続状況記憶手段が、クライアントからの接続要求時またはクライアントからの切断要求時に、そのときの時刻とともに前記接続リソース使用数および前記接続拒否リストに記憶されているクライアントの数を記憶するステップと、前記サーバが備える出力手段が、（１）前記サーバが予め用意している接続リソース数から、前記接続状況記憶手段に記憶されている前記接続リソース使用数のうちユーザにより指定された対象期間の接続リソース使用数の最大値を、減算して求める接続リソースの余剰数、（２）ユーザにより指定された対象期間において前記接続拒否リストに記憶されているクライアントの数の最大値である接続リソースの不足数、または、（３）前記接続状況記憶手段の記憶内容を、
前記サーバの接続リソースの使用状況として出力するステップとを備えることを特徴とする。
【発明の効果】
【０００９】
本発明のサーバの接続リソース見積もり方法によれば、負荷分散など導入コストが掛かる方法を取らなくても、サーバの接続リソースを効率的に利用するために、サーバ管理者が精度の高い見積もり情報を容易に取得することができる。
【発明を実施するための最良の形態】
【００１０】
以下、本発明を適用したサーバの接続リソース見積もり方法の一実施の形態について説明する。
【００１１】
図１は、本発明の実施形態の一例を示すシステム構成図である。クライアント群１０１とサーバ１０３が、ネットワーク１０２で接続されている。サーバ１０３は、その構成要素の一部として、接続リソース管理部１０４、出力処理部１０５、接続リソース１０６、メモリ１０７、及びコンソール装置１０８を備えている。接続リソース管理部１０４は、クライアントとの接続処理や切断処理を行い、サーバ１０３の接続リソース１０６を管理している。接続リソース１０６は、クライアントがサーバに接続している間使用される資源であり、有限で、必要なリソース数を事前に用意しておかなければならない形態である。接続リソース１０６が全て使用されている場合、クライアントから新たに接続することはできない。接続リソース管理部１０４及び出力処理部１０５からは、メモリ１０７にアクセスして読み書きすることができる。コンソール装置１０８からは、出力処理部１０５を介して、接続リソース管理部１０４で取得した情報が格納されているメモリ１０７の内容を参照することができる。本発明に係る接続リソース見積もり方法は、この内の接続リソース管理部１０４、出力処理部１０５、メモリ１０７、及びコンソール装置１０８を利用して実施することができる。
【００１２】
図２は、メモリ１０７に格納される接続状況テーブルの構成を示す。接続状況テーブルは、接続リソース使用数２０１、接続拒否リストのＩＰアドレス数２０２、及び情報を取得した時刻２０３を格納する。接続リソース使用数２０１は、時刻２０３の欄に格納された時刻においてクライアントがサーバ１０３に接続していることにより使用されている接続リソースの使用数を格納する欄である。接続拒否リストのＩＰアドレス数２０２は、その時刻において、接続拒否されて図３の接続拒否リスト３０１に登録されているＩＰアドレスの数を格納する欄である。
【００１３】
図３に、接続拒否リストの構成例を示す。接続拒否リストは、検索高速化のために、ハッシュテーブル３０１で構成される。このハッシュテーブル３０１は、接続要求に対して拒否したクライアントのＩＰアドレスをハッシュ形式で格納するテーブルである。ＩＰアドレス３０２ａ，３０２ｂ，・・・，３０２ｎは、全て接続拒否したクライアントのＩＰアドレスである。このＩＰアドレスの数が、図２のＩＰアドレス数２０２に格納される。ここでは、接続拒否リストの形式としてハッシュ形式を用いたが、どのような形式でもよい。
【００１４】
以下、以上のように構成されたシステムの動作を説明する。
【００１５】
図４は、接続リソース管理部１０４の接続処理の概要を示すフローチャートである。この処理は、何れかのクライアントから接続要求があったとき起動される。
【００１６】
接続リソース管理部１０４は、まず接続リソースに空きがあるか否かを判定し（ステップ４０１）、空きが無ければ接続要求を拒否し、ピーク区間に属していることを示すフラグをＯＮにする（ステップ４０２，４０３）。
【００１７】
次に、接続要求元のクライアントのＩＰアドレスが図３に示した接続拒否リスト３０１の中に登録されているかハッシュサーチし（ステップ４０４）、登録されていなければ、接続拒否リスト３０１にその接続要求元のＩＰアドレスを登録し、接続拒否したＩＰアドレス数を＋１する（ステップ４０５，４０６）。なお、「接続拒否したＩＰアドレス数」は、所定の記憶領域に記憶されている。ステップ４０４で接続要求元のＩＰアドレスが図３の接続拒否リスト３０１中に登録されていた場合は、ステップ４０５，４０６は行わない。これは、接続が失敗すると、同じクライアントが何度も接続しようとすることがあるため、同じクライアントに対する接続拒否は二重にカウントしないようにすることにより、情報の精度を高めるためである。
【００１８】
一方、ステップ４０１で接続リソースに空きがあった場合、当該接続要求元のクライアントに接続リソースを割り当て、接続リソース使用数を＋１し、当該接続要求元のＩＰアドレスが図３の接続拒否リスト３０１に登録されている場合はそれを削除し、接続拒否したＩＰアドレス数を−１する（ステップ４０７，４０８，４０９）。なお、「接続リソース使用数」は、所定の記憶領域に記憶されるようになっている。
【００１９】
最後に、時刻を取得し、取得した情報を図２で説明したメモリ１０７上にある接続状況テーブルに格納する（ステップ４１０，４１１）。これにより、接続状況テーブルに、接続リソース使用数２０１が最新の「接続リソース使用数」であり、接続拒否リストのＩＰアドレス数２０２が最新の「接続拒否したＩＰアドレス数」であり、時刻２０３がステップ４１０で取得した時刻であるレコードが追加されたことになる。
【００２０】
図５は、接続リソース管理部１０４の切断処理の概要を示すフローチャートである。この処理は、接続中のクライアントから切断要求があったとき起動される。
【００２１】
接続リソース管理部１０４は、まず当該クライアントに割り当てていた接続リソースを解放し、接続リソース使用数を−１する（ステップ５０１，５０２）。
【００２２】
次に、ピーク区間に属していることを示すフラグがＯＮかどうか、及び空いている接続リソース数が現在の接続拒否したＩＰアドレス数より大きいかどうかを判定する（ステップ５０３，５０４）。フラグがＯＮでかつ空きリソース数が大きい場合は、ピーク区間に属していることを示すフラグをＯＦＦにし、図３の接続拒否リスト３０１に登録されているＩＰアドレスを全てクリアし、接続拒否したＩＰアドレス数をゼロクリアする（ステップ５０５，５０６，５０７）。フラグがＯＮでかつ空きリソース数が大きい場合以外は、ステップ５０５，５０６，５０７は行わない。
【００２３】
最後に、時刻を取得し、取得した情報をメモリ１０７上の接続状況テーブル（図２）に格納する（ステップ５０８，５０９）。
【００２４】
図６は、図２における時刻と接続リソース使用数との関係を示したグラフ図である。
【００２５】
太線のグラフは、時刻に対する接続リソース使用数６０３の変化を示している。接続リソース使用数の最大値６０１は、接続リソース使用数６０３の最大値であり、この情報から、用意した接続リソースのうち最大でどれだけ使用されたかが分かる。例えば、接続リソース使用数の最大値６０１が、用意した接続リソース数より小さければ、接続リソース数の削減が可能である。
【００２６】
接続拒否リストのＩＰアドレス数の最大値６０２は、「接続クライアント数＋接続しようとしているクライアント数」が最大の区間で、サーバの接続リソース不足により接続拒否したクライアント数である。これは、接続リソース使用数６０３が用意した接続リソース数に達してから「空いている接続リソース数＞接続拒否リストのＩＰアドレス数」になるまでを一つのピーク区間（前述の「ピーク区間に属していることを示すフラグ」がＯＮの区間）として、最も接続拒否リストのＩＰアドレス数が多いピーク区間における当該接続拒否リストのＩＰアドレス数として求める。この情報から、用意した接続リソース数がどれだけ不足しているかが分かる。
【００２７】
接続リソース使用数６０３は、時刻に対する接続リソース使用数である。この情報から、接続リソース使用状況の詳細な分析ができる。
【００２８】
図７は、出力処理部１０５の処理概要を示すフローチャートである。この処理は、コンソール装置１０８から情報表示要求があったときに起動される。
【００２９】
出力処理部１０５は、コンソール装置１０８からの情報表示要求時に指定される出力情報種別と対象期間を受け付ける（ステップ７０１）。出力情報種別としては、「接続リソース余剰数」、「接続リソース不足数」、または「接続リソース使用状況」の何れかを指定できる。出力情報種別が「接続リソース余剰数」の場合、図２の形式でメモリ１０７に格納された情報より、指定された対象期間における「用意した接続リソース数−接続リソース使用数の最大値」を求める（ステップ７０２，７０３）。一方、出力情報種別が「接続リソース不足数」の場合、指定された対象期間における「接続拒否リストのＩＰアドレス数の最大値」を求める（ステップ７０４，７０５）。また、出力情報種別が「接続リソース使用状況」の場合、指定された対象期間における取得情報を図６のようなグラフにする（ステップ７０６，７０７）。最後に、求めた情報をコンソール装置１０８に表示する（ステップ７０８）。
【００３０】
ここで、対象期間は、接続リソース使用状況を計測している期間内であれば任意の期間を指定できる。これにより、一時間、一日、一週、一月、一年など、様々なオーダーで接続リソースの状況を分析できる。
【００３１】
以上のように、本実施形態のサーバの接続リソース見積もり方法によれば、次のような効果がある。
（１）負荷分散など導入コストが掛かる方法を取らなくても、サーバの接続リソースを効率的に利用するために、サーバ管理者が精度の高い見積もり情報を容易に取得することができる。
（２）サーバが接続リソース不足によりクライアントからの接続を拒否したときのみ接続拒否数をカウントし、更に同じクライアントに対する接続拒否は二重にカウントしないようにすることで、より情報の精度を高めることができる。
（３）サーバの接続リソース管理部で直接情報を取得するため、外付けのプログラムで計測する場合に比べてオーバヘッドが少なく、サーバへの負荷を小さくすることができる。
【００３２】
なお、上記実施形態においては、取得情報を出力する装置としてコンソール装置を例に挙げているが、クライアント等、情報を出力できる装置であればその種類を問わないことは言うまでもない。
【図面の簡単な説明】
【００３３】
【図１】本発明の一実施の形態例を示すシステム構成図である。
【図２】メモリに格納されている取得情報の構成図である。
【図３】メモリに格納されている接続拒否リストの構成図である。
【図４】接続リソース管理部の接続処理の概要を示すフローチャートである。
【図５】接続リソース管理部の切断処理の概要を示すフローチャートである。
【図６】時刻と接続リソース使用数との関係を示したグラフ図である。
【図７】出力処理部の処理概要を示すフローチャートである。
【符号の説明】
【００３４】
１０１…クライアント群、１０２…ネットワーク、１０３…サーバ、１０４…接続リソース管理部、１０５…出力処理部、１０６…接続リソース、１０７…メモリ、１０８…コンソール装置、３０１…ハッシュテーブル、３０２ａ，３０２ｂ，・・・，３０２ｎ…接続拒否した接続元のＩＰアドレス。
【図１】
0004627508.tif 000002
【図２】
0004627508.tif 000003
【図３】
0004627508.tif 000004
【図４】
0004627508.tif 000005
【図５】
0004627508.tif 000006
【図６】
0004627508.tif 000007
【図７】
0004627508.tif 000008