(57)【要約】【課題】スループットを改善すること。【解決手段】通信制御装置４は、記憶部４ａと制御部４ｂとを含む。記憶部４ａは、通信装置５の通信制御装置６との間で確立中のコネクションの数と確立したコネクションによって予約されるコネクションの数とを合算した合算数と、合算数の制限値とを記憶する。制御部４ｂは、通信要求を受け付けたとき、合算数が制限値に満たない場合に通信装置５の通信制御装置６にコネクション要求を送信するとともに合算数を更新し、合算数が制限値に達している場合に通信装置５の通信制御装置６へのコネクション要求を抑止する。【選択図】図１
2019004270.tif 000002
【特許請求の範囲】
【請求項１】
第１の通信装置の通信制御装置であって、
第２の通信装置の通信制御装置との間で確立中のコネクションの数と確立したコネクションによって予約されるコネクションの数とを合算した合算数と、前記合算数の制限値とを記憶する記憶部と、
通信要求を受け付けたとき、前記合算数が前記制限値に満たない場合に前記第２の通信装置の通信制御装置にコネクション要求を送信するとともに前記合算数を更新し、前記合算数が前記制限値に達している場合に前記第２の通信装置の通信制御装置へのコネクション要求を抑止する制御部と、
を含む通信制御装置。
【請求項２】
前記制御部は、前記通信要求の要求元に対してビジー応答を返すことで、前記第２の通信装置の通信制御装置へのコネクション要求を抑止する、
請求項１記載の通信制御装置。
【請求項３】
前記記憶部は、コネクションの確立によって送信するコマンド数に対応した制限値を記憶し、
前記制御部は、前記合算数のコネクションによって送信したコマンド数および確立予定のコネクションによって送信するコマンド数の合算値に応じた前記コマンド数に対応した制限値を用いて前記第２の通信装置の通信制御装置にコネクション要求を送信するか否かを判定する、
請求項１または２記載の通信制御装置。
【請求項４】
前記記憶部は、コネクションの確立によって送信するコマンド数に対応した制限値と所定時間単位における目標のデータ転送量の閾値を示す閾値情報とを記憶し、
前記制御部は、前記第２の通信装置の通信制御装置との間における前記合算数のコネクションにおける前記所定時間単位のデータ転送量を計測し、前記計測したデータ転送量と前記閾値情報とに基づいて前記コマンド数に対応した制限値を更新するか否かを判断する、
請求項１または２記載の通信制御装置。
【請求項５】
前記制御部は、前記計測したデータ転送量が前記閾値未満であり、前記計測したデータ転送量が前回計測したデータ転送量よりも小さく、かつ前記コマンド数に対応した制限値を前回減少させた場合、前記コマンド数に対応した制限値を増加させる、
請求項４記載の通信制御装置。
【請求項６】
前記制御部は、前記計測したデータ転送量が前記閾値未満であり、前記計測したデータ転送量が前回計測したデータ転送量よりも小さく、かつ前記コマンド数に対応した制限値を前回増加させた場合、前記コマンド数に対応した制限値を減少させる、
請求項４記載の通信制御装置。
【請求項７】
前記制御部は、前記計測したデータ転送量が前記閾値未満であり、前記計測したデータ転送量が前回計測したデータ転送量よりも大きく、かつ前記コマンド数に対応した制限値を前回増加させた場合、前記コマンド数に対応した制限値を増加させる、
請求項４記載の通信制御装置。
【請求項８】
前記制御部は、前記計測したデータ転送量が前記閾値未満であり、前記計測したデータ転送量が前回計測したデータ転送量よりも大きく、かつ前記コマンド数に対応した制限値を前回減少させた場合、前記コマンド数に対応した制限値を減少させる、
請求項４記載の通信制御装置。
【請求項９】
前記制御部は、前期計測したデータ転送量が前記閾値以上の場合、前記コマンド数に対応した制限値の更新を抑止する、
請求項４記載の通信制御装置。
【請求項１０】
第１の通信装置の通信制御装置に、
通信要求を受け付けたとき、第２の通信装置の通信制御装置との間で確立中のコネクションの数と確立したコネクションによって予約されるコネクションの数とを合算した合算数が前記合算数の制限値に満たない場合に前記第２の通信装置の通信制御装置にコネクション要求を送信するとともに前記合算数を更新し、前記合算数が前記制限値に達している場合に前記第２の通信装置の通信制御装置へのコネクション要求を抑止する、
処理を実行させる通信制御プログラム。
【請求項１１】
通信要求を送信する通信要求装置と、
第１の通信装置の通信制御装置と、
第２の通信装置の通信制御装置と、
を含み、
前記第１の通信装置の通信制御装置は、
前記第２の通信装置の通信制御装置との間で確立中のコネクションの数と確立したコネクションによって予約されるコネクションの数とを合算した合算数と、前記合算数の制限値とを記憶する記憶部と、
通信要求を受け付けたとき、前記合算数が前記制限値に満たない場合に前記第２の通信装置の通信制御装置にコネクション要求を送信するとともに前記合算数を更新し、前記合算数が前記制限値に達している場合に前記第２の通信装置の通信制御装置へのコネクション要求を抑止する制御部と、
を含む、
情報処理システム。
【請求項１２】
前記第１の通信装置の通信制御装置は、前記通信要求装置に対してビジー応答を返すことで、前記第２の通信装置の通信制御装置へのコネクション要求を抑止する、
請求項１１記載の情報処理システム。
【請求項１３】
前記通信要求装置は、前記ビジー応答を受け付けたとき、前記制御部がコネクション要求を前記第２の通信装置の通信制御装置に送信したことを契機に開始した処理が完了したことを前記第１の通信装置の通信制御装置または前記第２の通信装置の通信制御装置から受け付けるまで前記通信要求を前記第１の通信装置の通信制御装置に再送信することを抑止する、
請求項１２記載の情報処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は通信制御装置、通信制御プログラムおよび情報処理システムに関する。
【背景技術】
【０００２】
通信装置には、複数のコネクションを確立する多重動作によって通信を行うものがある。例えば、コネクション数を増加させながらデータ送受信のスループット値を計測し、最適値を決定することでスループット値を最大にした多重度で通信を行うものがある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１２−１８４８１号公報
【特許文献２】特開２００９−２００６１１号公報
【特許文献３】特開２０００−３４７９９９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、コネクションの確立を要求する通信装置と、コネクションの確立要求を受ける通信装置とは、それぞれ確立可能なコネクション数が異なることがある。例えば、確立可能なコネクション数は、通信装置自体の制約により確立可能なコネクション数が制限されている場合があり、また通信装置の上位層（アプリケーションなど）からの制約により確立可能なコネクション数が制限されている場合もある。
【０００５】
コネクションの確立を要求した通信装置よりもコネクションの確立を要求された通信装置において確立可能なコネクション数が強く制限されている場合、コネクションの確立待ちが生じる。コネクションの確立を要求された通信装置は、コネクションの確立待ちにおいて、コネクションの確立を要求した通信装置にＢｕｓｙ応答を送信する。このような制限の不均衡が大きいとき、コネクションの確立を要求された通信装置は、コネクション要求に応じられない回数が増える。コネクションの確立を要求された通信装置は、コネクション要求に応じられない回数が増えることでＢｕｓｙ応答を送信する回数が増える。Ｂｕｓｙ応答の回数増大は、通信装置の処理負担を増大させ、また、通信帯域を圧迫し、スループットを悪化させる。
【０００６】
１つの側面では、本発明は、スループットを改善できる通信制御装置、通信制御プログラムおよび情報処理システムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
１つの態様では、通信制御装置が提供される。この通信制御装置は、第１の通信装置に含まれ、記憶部と制御部とを含む。記憶部は、第２の通信装置の通信制御装置との間で確立中のコネクションの数と確立したコネクションによって予約されるコネクションの数とを合算した合算数と、合算数の制限値とを記憶する。制御部は、通信要求を受け付けたとき、合算数が制限値に満たない場合に第２の通信装置の通信制御装置にコネクション要求を送信するとともに合算数を更新し、合算数が制限値に達している場合に第２の通信装置の通信制御装置へのコネクション要求を抑止する。
【０００８】
また、１つの態様では、通信制御プログラムが提供される。この通信制御プログラムは、通信要求を受け付けたとき、第２の通信装置の通信制御装置との間で確立中のコネクションの数と確立したコネクションによって予約されるコネクションの数とを合算した合算数が合算数の制限値に満たない場合に第２の通信装置の通信制御装置にコネクション要求を送信するとともに合算数を更新し、合算数が制限値に達している場合に第２の通信装置の通信制御装置へのコネクション要求を抑止する、処理を実行させる。
【０００９】
また、１つの態様では、情報処理システムが提供される。この情報処理システムは、通信要求を送信する通信要求装置と、第１の通信装置の通信制御装置と、第２の通信装置の通信制御装置と、を含む。第１の通信装置の通信制御装置は、第２の通信装置の通信制御装置との間で確立中のコネクションの数と確立したコネクションによって予約されるコネクションの数とを合算した合算数と、合算数の制限値とを記憶する記憶部と、通信要求を受け付けたとき、合算数が制限値に満たない場合に第２の通信装置の通信制御装置にコネクション要求を送信するとともに合算数を更新し、合算数が制限値に達している場合に第２の通信装置の通信制御装置へのコネクション要求を抑止する制御部と、を含む。
【発明の効果】
【００１０】
１つの側面では、通信制御装置、通信制御プログラムおよび情報処理システムは、スループットを改善できる。
【図面の簡単な説明】
【００１１】
【図１】第１の実施の形態の情報処理システムの一例を示す図である。
【図２】第２の実施の形態の情報処理システムの一例を示す図である。
【図３】業務サーバのハードウェア構成の一例を示す図である。
【図４】Ｂｕｓｙ応答が多発する例を示す図である。
【図５】業務サーバが有する機能の一例を示す図である。
【図６】ストレージ装置に送信できるコマンド数が制限されている場合の具体例を示す図である。
【図７】送信制限数とスループットとの関係を示すグラフの一例を示す図である。
【図８】スループットとチェイン数との関係を示す図である。
【図９】送信制限数とチェイン数との関係を示すグラフの一例を示す図である。
【図１０】コマンド管理テーブルの一例を示す図である。
【図１１】送信管理テーブルの一例を示す図である。
【図１２】制御テーブルの一例を示す図である。
【図１３】更新判定処理の一例を示すフローチャートである。
【図１４】更新処理の一例を示すフローチャートである。
【図１５】送信制限数の更新などの具体例（その１）を示す図である。
【図１６】送信制限数の更新などの具体例（その１）のグラフを示す図である。
【図１７】送信制限数の更新などの具体例（その２）を示す図である。
【図１８】送信制限数の更新などの具体例（その２）のグラフを示す図である。
【図１９】コマンド送信の判定処理の一例を示すフローチャートである。
【発明を実施するための形態】
【００１２】
以下、実施の形態について図面を参照して説明する。
［第１の実施の形態］
図１は、第１の実施の形態の情報処理システムの一例を示す図である。情報処理システム１は、通信装置２と通信装置５とを含む。通信装置２と通信装置５は、ネットワークを介して接続され、コネクションを確立して通信する。
【００１３】
通信装置２と通信装置５とは、それぞれ確立可能なコネクション数が異なる場合がある。例えば、通信装置２と通信装置５とは、通信装置自体の制約による制限や、上位層のアプリケーションがレガシーアプリケーションであるなどの制限によって、確立可能なコネクション数が異なる。
【００１４】
通信装置２と通信装置５とは、それぞれ確立可能なコネクション数のうち小さい方の数を上限としてコネクションを確立できる。例えば、通信装置２と通信装置５は、通信装置２で確立可能なコネクション数が「１」かつ通信装置５で確立可能なコネクション数が「３」である場合にコネクションを１つ確立することができる。通信装置２で確立可能なコネクション数は、通信装置５で確立可能なコネクション数よりも小さいものとする。
【００１５】
通信装置２は、通信要求装置３と通信制御装置４とを含む。通信装置５は、通信制御装置６を含む。通信制御装置４は、通信要求装置３から通信要求２ａを受け付けて、コネクションの数が上限の範囲内にあるときに通信制御装置６にコネクション要求を送信する。通信制御装置６は、通信制御装置４から受信したコネクション要求に対する確認応答／コネクション要求を通信制御装置４に送信する。通信制御装置４は、確認応答を通信制御装置６に送信する。これにより、通信制御装置４と通信制御装置６は、コネクションを確立し、確立したコネクションで通信を開始する。
【００１６】
通信制御装置４は、記憶部４ａと制御部４ｂとを含む。記憶部４ａは、例えば、ＲＡＭ（Random Access Memory）などである。制御部４ｂは、例えば、プロセッサが所要の処理を実行することにより実現し得る。
【００１７】
記憶部４ａは、コネクション数情報４ａ１と制限値情報４ａ２とを記憶する。コネクション数情報４ａ１は、通信装置５の通信制御装置６との間で確立中のコネクションの数と確立したコネクションによって予約されるコネクションの数とを合算した合算数を示す。
【００１８】
確立したコネクションによって予約されるコネクションについて、説明する。通信制御装置６は、通信制御装置４からコネクション要求Ａを受信する。通信制御装置６は、コネクション要求Ａの確認応答Ａを通信制御装置４に送信する。また、通信制御装置６は、確認応答Ａとともにコネクション要求Ａを通信制御装置４に送信する。通信制御装置４は、通信制御装置６から受信したコネクション要求Ａに対する確認応答を通信制御装置６に送信する。これにより、通信制御装置４と通信制御装置６は、コネクションを確立する。確立したコネクションで通信制御装置４から通信制御装置６にコマンドが送信されるなどした場合、通信制御装置６は、通信制御装置４に対してコマンドに対する応答を行うことを要する。このとき、通信制御装置６は、通信制御装置４に対してコネクション要求（コネクション要求Ｂ）を行い、当該コネクション要求により確立したコネクションでコマンドに対する応答を行う。コネクション要求Ｂは、コネクション要求Ａによって予約されるコネクション要求に相当する。すなわち、コネクション要求Ｂによるコネクションは、コネクション要求Ａにより確立したコネクションによって予約されるコネクションである。
【００１９】
制限値情報４ａ２は、コネクション数情報４ａ１が示す合算数の制限値を示す。なお、制御部４ｂは、制限値を増減することができる。
制御部４ｂは、通信要求装置３から通信要求２ａを受け付ける。制御部４ｂは、合算数が制限値に満たない場合に通信制御装置６にコネクション要求を送信するとともに合算数を更新する。例えば、制御部４ｂは、通信制御装置６にコネクション要求を送信して合算数を「１」インクリメントする。なお、制御部４ｂは、合算数を制限値までインクリメントすることができる。
【００２０】
また、制御部４ｂは、予約されたコネクションを確立して当該コネクションで通信が終了した後、合算数を「１」デクリメントする。例えば、制御部４ｂは、コネクション要求Ｂによりコネクションを確立し、通信制御装置４と通信制御装置６による当該コネクションを介した通信が終了した後に合算数を「１」デクリメントする。なお、制御部４ｂは、合算数を「０」までデクリメントすることができる。合算数が「０」の状態は、通信制御装置４と通信制御装置６との間でコネクションが１つも確立されていない状態を示す。
【００２１】
また、制御部４ｂは、通信要求装置３から通信要求２ａを受け付けたとき、合算数が制限値に達しているか否かを判定する。制御部４ｂは、合算数が制限値に達している場合に通信制御装置６へのコネクション要求を抑止する。例えば、制御部４ｂは、記憶部４ａを参照して合算数が「２」かつ制限値が「２」の場合、通信制御装置６へのコネクション要求を抑止する。制御部４ｂは、通信要求装置３にＢｕｓｙ応答２ｂを送信することによって、通信制御装置６へのコネクション要求を抑止することができる。なお、制御部４ｂは、合算数を制限値よりも小さくした後に通信要求装置３から通信要求２ａを受け付けたときに、合算数が制限値に満たないことから通信制御装置６にコネクション要求を送信する。例えば、制御部４ｂは、合算数が「２」から「１」に変わった後に通信要求装置３から通信要求２ａを受け付けたときに、合算数「１」が制限値「２」に達していないことからコネクション要求を通信制御装置６に送信する。
【００２２】
なお、通信制御装置６は、通信制御装置４が無制限に通信制御装置６にコネクション要求を送信できるとした場合、通信制御装置４から受信した全てのコネクション要求に応答する。通信制御装置６は、通信制御装置４から受信した全てのコネクション要求に対する確認応答／コネクション要求を通信制御装置４に送信する。通信制御装置４は、既に通信装置２と通信装置５とで確立可能なコネクション数が上限に達している場合、通信制御装置６が送信した全ての確認応答／コネクション要求に応じることができない。通信制御装置４は、応じることができない確認応答／コネクション要求に対してＢｕｓｙ応答を通信制御装置６に送信する。このように、通信制御装置４は、通信制御装置６が送信した各確認応答／コネクション要求に応じることができなかった場合、Ｂｕｓｙ応答を送信する回数が増える。Ｂｕｓｙ応答の回数増大は、通信制御装置４の処理負担を増大させ、スループットを悪化させる。
【００２３】
第１の実施の形態によれば、通信制御装置４は、合算数が制限値に達している場合に通信制御装置６へのコネクション要求を抑止する。通信制御装置４は、通信制御装置６に送信するコネクション要求数を制限することで、通信制御装置６が送信する確認応答／コネクション要求の数を減らすことができる。通信制御装置４は、通信制御装置６が送信する確認応答／コネクション要求の数を減らすことで、Ｂｕｓｙ応答を通信制御装置６に送信する回数を減らすことができる。通信制御装置４は、Ｂｕｓｙ応答を通信制御装置６に送信する回数を減らせるため、通信制御装置４の処理負担を軽減でき、スループットを改善できる。
【００２４】
よって、第１の実施の形態によれば、情報処理システム１と通信制御装置４は、スループットを改善できる。
［第２の実施の形態］
図２は、第２の実施の形態の情報処理システムの一例を示す図である。情報処理システム１０は、業務サーバ１００、ストレージ装置２００および伝送路３００を含む。業務サーバ１００とストレージ装置２００とは、伝送路３００を介して接続できる。伝送路３００は、ファイバチャネルなどの伝送方式でデータ転送可能な通信路である。
【００２５】
業務サーバ１００は、ストレージ装置２００に格納されたデータにアクセスするサーバコンピュータである。例えば、業務サーバ１００は、ファイバチャネルでデータ転送を行うとき、ＣＨ（Channel）の数を制御する。業務サーバ１００は、通信インタフェース１０７を有する。通信インタフェース１０７は、業務サーバ１００がストレージ装置２００と通信を行うためのインタフェースである。
【００２６】
ストレージ装置２００は、複数のストレージデバイス（例えば、ＨＤＤ（Hard Disk Drive）やＳＳＤ（Solid State Drive））を内蔵し、業務サーバ１００の処理に用いられるデータを記憶する。例えば、ストレージ装置２００は、ＣＵ（Control Unit）を有してストレージデバイスを制御する。また、ストレージ装置２００は、通信インタフェース２０１を有する。通信インタフェース２０１は、ストレージ装置２００が業務サーバ１００と通信を行うためのインタフェースである。
【００２７】
業務サーバ１００とストレージ装置２００とは、通信インタフェース１０７と通信インタフェース２０１とに接続された伝送路３００を介して通信を行う。なお、業務サーバ１００は、第１の実施の形態の通信装置２の一形態である。ストレージ装置２００は、第１の実施の形態の通信装置５の一形態である。ストレージ装置２００が有するＣＵまたは通信インタフェース２０１は、第１の実施の形態の通信制御装置６の一形態である。
【００２８】
図３は、業務サーバのハードウェア構成の一例を示す図である。業務サーバ１００は、プロセッサ１０１、ＲＡＭ１０２、ＨＤＤ１０３、画像信号処理部１０４、入力信号処理部１０５、読み取り装置１０６および通信インタフェース１０７を有する。
【００２９】
プロセッサ１０１は、マルチプロセッサであってもよい。プロセッサ１０１は、例えばＣＰＵ（Central Processing Unit）、ＤＳＰ（Digital Signal Processor）、ＡＳＩＣ（Application Specific Integrated Circuit）またはＦＰＧＡ（Field Programmable Gate Array）などである。プロセッサ１０１は、ＣＰＵ、ＤＳＰ、ＡＳＩＣ、ＦＰＧＡなどのうちの２以上の要素の組み合わせであってもよい。
【００３０】
ＲＡＭ１０２は、業務サーバ１００の主記憶装置である。ＲＡＭ１０２は、プロセッサ１０１に実行させるＯＳ（Operating System）のプログラムやアプリケーションプログラムの少なくとも一部を一時的に記憶する。また、ＲＡＭ１０２は、プロセッサ１０１による処理に用いる各種データを記憶する。
【００３１】
ＨＤＤ１０３は、業務サーバ１００の補助記憶装置である。ＨＤＤ１０３は、内蔵した磁気ディスクに対して、磁気的にデータの書き込みおよび読み出しを行う。ＨＤＤ１０３には、ＯＳのプログラム、アプリケーションプログラム、および各種データが格納される。業務サーバ１００は、フラッシュメモリやＳＳＤなどの他の種類の補助記憶装置を備えてもよく、複数の補助記憶装置を備えてもよい。
【００３２】
画像信号処理部１０４は、プロセッサ１０１からの命令に従って、業務サーバ１００に接続されたディスプレイ１１に画像を出力する。ディスプレイ１１としては、ＣＲＴ（Cathode Ray Tube）ディスプレイや液晶ディスプレイなどを用いることができる。
【００３３】
入力信号処理部１０５は、業務サーバ１００に接続された入力デバイス１２から入力信号を取得し、プロセッサ１０１に出力する。入力デバイス１２としては、例えば、マウスやタッチパネルなどのポインティングデバイス、キーボードなどを用いることができる。
【００３４】
読み取り装置１０６は、記録媒体１３に記録されたプログラムやデータを読み取る装置である。記録媒体１３として、例えば、フレキシブルディスク（ＦＤ：Flexible Disk）やＨＤＤなどの磁気ディスク、ＣＤ（Compact Disc）やＤＶＤ（Digital Versatile Disc）などの光ディスク、光磁気ディスク（ＭＯ：Magneto-Optical disk）を使用できる。また、記録媒体１３として、例えば、フラッシュメモリカードなどの不揮発性の半導体メモリを使用することもできる。読み取り装置１０６は、例えば、プロセッサ１０１からの命令に従って、記録媒体１３から読み取ったプログラムやデータをＲＡＭ１０２またはＨＤＤ１０３に格納する。更に、プロセッサ１０１は、記録媒体１３から読み取ったプログラムやデータを、業務サーバ１００のＲＡＭ１０２やＨＤＤ１０３に格納するよう業務サーバ１００に指示することもできる。
【００３５】
通信インタフェース１０７は、ストレージ装置２００と通信を行うためのインタフェースである。
図４は、Ｂｕｓｙ応答が多発する例を示す図である。図４は、業務サーバ１００がＩＯＰ（Input Output Process）４０１とドライバ４０２を有しているものと仮定して説明する。ＩＯＰ４０１は、ストレージ装置２００へのコマンドの送信などをドライバ４０２に依頼するソフトウェアである。ドライバ４０２は、ＩＯＰ４０１およびストレージ装置２００が送信するコマンドなどを中継する。
【００３６】
業務サーバ１００とストレージ装置２００は、許容される多重度に応じた数のコネクションを確立することができる。また、業務サーバ１００とストレージ装置２００は、許容される多重度が異なる場合、許容される多重度が小さい方の数を上限とした数のコネクションを確立できる。例えば、業務サーバ１００が許容されている多重度が“１”、ストレージ装置２００が許容されている多重度が“３”の場合、業務サーバ１００とストレージ装置２００は、コネクションを１つ確立できる。図４は、業務サーバ１００とストレージ装置２００の間でコネクションを１つ確立できるものとする。
【００３７】
（ＳＴ１０１）ＩＯＰ４０１は、コマンド（Ａ）をドライバ４０２に送信する。当該コマンド（Ａ）は、コネクション確立要求を含む。コネクション確立要求は、業務サーバ１００とストレージ装置２００とでコネクションを確立するためのコネクション要求の送信依頼と考えてもよい。なお、コマンド（Ａ）の“Ａ”は、コマンドの識別情報である。例えば、コマンドの識別情報は、コマンドＩＤ（identifier）である。また、ＩＯＰ４０１がドライバ４０２に送信するコマンドは、第１の実施の形態の通信要求と考えてもよい。
【００３８】
（ＳＴ１０２）ドライバ４０２は、コマンド（Ａ）をストレージ装置２００に送信する。当該コマンド（Ａ）は、コネクション要求を含む。ストレージ装置２００は、ＡＣＣ（ACCept）応答（Ａ）を業務サーバ１００に送信する。ＡＣＣ応答は、確認応答コマンドである。送信後、ストレージ装置２００は、業務サーバ１００からＡＣＣ応答（Ａ）を受信する。これにより、業務サーバ１００とストレージ装置２００は、コネクションを確立する。コネクションが１つしか確立できないため、業務サーバ１００とストレージ装置２００との通信は、コマンド（Ａ）に関する通信で占有される。
【００３９】
また、ＩＯＰ４０１およびドライバ４０２が送信するコマンド（Ａ）は、ストレージ装置２００が格納するデータの読み出し要求、またはストレージ装置２００に対するデータの書き込み要求を含む。以下の説明では、コマンド（Ａ）は、読み出し要求を含むものとする。ストレージ装置２００は、コネクション確立後、読み出し要求されたデータの読み出しの準備のため、一旦、コネクションを切断する。
【００４０】
（ＳＴ１０３）ストレージ装置２００は、コネクション切断（Ａ）の要求をドライバ４０２に送信する。
（ＳＴ１０４）ドライバ４０２は、コネクション切断（Ａ）の要求をＩＯＰ４０１に送信する。これにより、業務サーバ１００とストレージ装置２００との間のコネクションは、切断される。
【００４１】
（ＳＴ１０５）ＩＯＰ４０１は、コマンド（Ｂ）をドライバ４０２に送信する。当該コマンド（Ｂ）は、コネクション確立要求を含む。
（ＳＴ１０６）ドライバ４０２は、コマンド（Ｂ）をストレージ装置２００に送信する。当該コマンド（Ｂ）は、コネクション要求を含む。ストレージ装置２００は、ＡＣＣ応答（Ｂ）を業務サーバ１００に送信する。送信後、ストレージ装置２００は、業務サーバ１００からＡＣＣ応答（Ｂ）を受信する。これにより、業務サーバ１００とストレージ装置２００は、コネクションを確立する。コネクションが１つしか確立できないため、業務サーバ１００とストレージ装置２００との通信は、コマンド（Ｂ）に関する通信で占有される。
【００４２】
また、ＩＯＰ４０１およびドライバ４０２が送信するコマンド（Ｂ）は、ストレージ装置２００が格納するデータの読み出し要求、またはストレージ装置２００に対するデータの書き込み要求を含む。以下の説明では、コマンド（Ｂ）は、読み出し要求を含むものとする。ストレージ装置２００は、コネクション確立後、読み出し要求されたデータの読み出しの準備のため、一旦、コネクションを切断する。
【００４３】
（ＳＴ１０７）ストレージ装置２００は、コネクション切断（Ｂ）の要求をドライバ４０２に送信する。
（ＳＴ１０８）ドライバ４０２は、コネクション切断（Ｂ）の要求をＩＯＰ４０１に送信する。これにより、業務サーバ１００とストレージ装置２００との間のコネクションは、切断される。
【００４４】
（ＳＴ１０９）ＩＯＰ４０１は、コマンド（Ｃ）をドライバ４０２に送信する。当該コマンド（Ｃ）は、コネクション確立要求を含む。
（ＳＴ１１０）ドライバ４０２は、コマンド（Ｃ）をストレージ装置２００に送信する。当該コマンド（Ｃ）は、コネクション要求を含む。ストレージ装置２００は、ＡＣＣ応答（Ｃ）を業務サーバ１００に送信する。送信後、ストレージ装置２００は、業務サーバ１００からＡＣＣ応答（Ｃ）を受信する。これにより、業務サーバ１００とストレージ装置２００は、コネクションを確立する。コネクションが１つしか確立できないため、業務サーバ１００とストレージ装置２００との通信は、コマンド（Ｃ）に関する通信で占有される。
【００４５】
また、ＩＯＰ４０１およびドライバ４０２が送信するコマンド（Ｃ）は、ストレージ装置２００が格納するデータの読み出し要求、またはストレージ装置２００に対するデータの書き込み要求を含む。以下の説明では、コマンド（Ｃ）は、読み出し要求を含むものとする。ストレージ装置２００は、コネクション確立後、読み出し要求されたデータの読み出しの準備のため、一旦、コネクションを切断する。
【００４６】
（ＳＴ１１１）ストレージ装置２００は、コネクション切断（Ｃ）の要求をドライバ４０２に送信する。
（ＳＴ１１２）ドライバ４０２は、コネクション切断（Ｃ）の要求をＩＯＰ４０１に送信する。これにより、業務サーバ１００とストレージ装置２００との間のコネクションは、切断される。
【００４７】
（ＳＴ１１３）ストレージ装置２００は、コマンド（Ａ）で読み出し要求されたデータを業務サーバ１００に送信するための準備が完了したため、業務サーバ１００とのコネクションの確立を行う。ストレージ装置２００は、コネクション要求（Ａ）をドライバ４０２に送信する。
【００４８】
（ＳＴ１１４）ドライバ４０２は、コネクション要求（Ａ）をＩＯＰ４０１に送信する。
（ＳＴ１１５）ＩＯＰ４０１は、ＡＣＣ応答（Ａ）をドライバ４０２に送信する。
【００４９】
（ＳＴ１１６）ドライバ４０２は、ＡＣＣ応答（Ａ）をストレージ装置２００に送信する。これにより、業務サーバ１００とストレージ装置２００との間でコネクションが確立される。コネクションが１つしか確立できないため、業務サーバ１００とストレージ装置２００との通信は、コマンド（Ａ）に関する通信で占有される。
【００５０】
（ＳＴ１１７）ストレージ装置２００は、データ１（Ａ）をドライバ４０２に送信する。
（ＳＴ１１８）ストレージ装置２００は、コマンド（Ｂ）で読み出し要求されたデータを業務サーバ１００に送信するための準備が完了したため、コネクション要求（Ｂ）をドライバ４０２に送信する。
【００５１】
（ＳＴ１１９）ドライバ４０２は、業務サーバ１００とストレージ装置２００との間がコマンド（Ａ）に関する通信で占有されているため、コネクション要求（Ｂ）に対して応答できない。ドライバ４０２は、ストレージ装置２００にＢｕｓｙ応答（Ｂ）を送信する。
【００５２】
（ＳＴ１２０）ストレージ装置２００は、データ２（Ａ）をドライバ４０２に送信する。
（ＳＴ１２１）ストレージ装置２００は、コマンド（Ｃ）で読み出し要求されたデータを業務サーバ１００に送信するための準備が完了したため、コネクション要求（Ｃ）をドライバ４０２に送信する。
【００５３】
（ＳＴ１２２）ドライバ４０２は、業務サーバ１００とストレージ装置２００との間がコマンド（Ａ）に関する通信で占有されているため、コネクション要求（Ｃ）に対して応答できない。ドライバ４０２は、ストレージ装置２００にＢｕｓｙ応答（Ｃ）を送信する。
【００５４】
（ＳＴ１２３）ストレージ装置２００は、データ３（Ａ）をドライバ４０２に送信する。
（ＳＴ１２４）ストレージ装置２００は、転送終了（Ａ）をドライバ４０２に通知する。
【００５５】
（ＳＴ１２５）ドライバ４０２は、ＡＣＣ応答（Ａ）をストレージ装置２００に送信する。
（ＳＴ１２６）ドライバ４０２は、処理終了（Ａ）をＩＯＰ４０１に通知する。
【００５６】
このように、業務サーバ１００は、コネクション要求（Ｂ）、コネクション要求（Ｃ）をストレージ装置２００から受信した場合、Ｂｕｓｙ応答（Ｂ）、Ｂｕｓｙ応答（Ｃ）をストレージ装置２００に送信する。そのため、業務サーバ１００は、処理負担が高くなり、スループットが悪化する。また、ストレージ装置２００は、所定時間を経過後、コネクション要求（Ｂ）、コネクション要求（Ｃ）を再送信する。業務サーバ１００は、再送信されたコネクション要求（Ｂ）、コネクション要求（Ｃ）に対してＢｕｓｙ応答（Ｂ）、Ｂｕｓｙ応答（Ｃ）をストレージ装置２００に送信するため、ますます、処理負担が高くなる。
【００５７】
また、例えば、業務サーバ１００の多重度は、マルチパス制御でストレージ装置２００とコネクションを確立できる場合がある。業務サーバ１００がストレージ装置２００の多重度より小さく、それぞれのパスで確立できるコネクションが制限されている（例えば、１）ときは、上記のようにＢｕｓｙ応答をストレージ装置２００に送信するため、業務サーバ１００の処理負担が高くなる。
【００５８】
第２の実施の形態は、業務サーバ１００の処理負担を軽減し、スループットを改善できることについて説明する。
図５は、業務サーバが有する機能の一例を示す図である。業務サーバ１００は、記憶部１１０、ＩＯＰ１２０、送信制御部１３０、更新制御部１４０、転送部１５０を有する。
【００５９】
記憶部１１０は、ＲＡＭ１０２またはＨＤＤ１０３に確保した記憶領域として実装される。記憶部１１０は、コマンド管理テーブル、送信管理テーブル、制御テーブルを記憶する。コマンド管理テーブルは、ストレージ装置２００に送信済みのコマンドに関する情報を示す。送信管理テーブルは、ストレージ装置２００に送信済みのコマンド数やデータ転送量などを示す。制御テーブルは、ストレージ装置２００にコマンドを送信可能な送信制限数などを示す。なお、記憶部１１０は、第１の実施の形態の記憶部４ａの一形態である。送信制限数は、第１の実施の形態の制限値情報４ａ２が示す制限値の一形態である。
【００６０】
ＩＯＰ１２０、送信制御部１３０、更新制御部１４０、転送部１５０は、プロセッサ１０１が所定のプログラムを実行することによって実現される。
ＩＯＰ１２０は、ストレージ装置２００へのコネクション要求の送信依頼を含むコマンドを送信制御部１３０に送信する。なお、ＩＯＰ１２０は、第１の実施の形態の通信要求装置３の一形態である。
【００６１】
送信制御部１３０は、送信制限数に基づいて、ストレージ装置２００にコマンドを送信するか否かを判定する。送信制御部１３０は、ストレージ装置２００にコマンドを送信すると判定した場合、ストレージ装置２００にコマンドを送信する。送信制御部１３０は、ストレージ装置２００にコマンドを送信しないと判定した場合、ＩＯＰ１２０にＢｕｓｙ応答を送信する。
【００６２】
更新制御部１４０は、制御テーブルの更新処理を実行する。更新処理については、後で詳細に説明する。転送部１５０は、データを送信する度に、データの転送量を送信管理テーブルに登録する。なお、送信制御部１３０、更新制御部１４０、転送部１５０は、第１の実施の形態の制御部４ｂの一形態である。
【００６３】
業務サーバ１００とストレージ装置２００は、許容される多重度に応じた数のコネクションを確立することができる。また、業務サーバ１００とストレージ装置２００は、許容される多重度が異なる場合、許容される多重度が小さい方の数を上限とした数のコネクションを確立できる。第２の実施の形態は、業務サーバ１００の多重度の方がストレージ装置２００の多重度よりも小さいものとする。例えば、業務サーバ１００の多重度は、１である。ストレージ装置２００の多重度は、３である。この場合、業務サーバ１００とストレージ装置２００は、コネクションを１つ確立できる。
【００６４】
図６は、ストレージ装置に送信できるコマンド数が制限されている場合の具体例を示す図である。図６は、業務サーバ１００がＩＯＰ１２０と送信制御部１３０を有していることを示している。また、図６は、業務サーバ１００とストレージ装置２００の間でコネクションを１つ確立できるものとする。
【００６５】
（ＳＴ１３１）ＩＯＰ１２０は、コマンド（Ａ）を送信制御部１３０に送信する。当該コマンド（Ａ）は、コネクション確立要求を含む。コネクション確立要求は、業務サーバ１００とストレージ装置２００とでコネクションを確立するためのコネクション要求の送信依頼と考えてもよい。また、ＩＯＰ１２０が送信制御部１３０に送信するコマンドは、第１の実施の形態の通信要求と考えてもよい。
【００６６】
（ＳＴ１３２）送信制御部１３０は、送信制限数に基づいて、コマンド（Ａ）をストレージ装置２００に送信するか否かを判定する。送信制限数を２とする。ストレージ装置２００に送信したコマンドの送信数は、０である。送信制御部１３０は、コマンド（Ａ）をストレージ装置２００に送信した場合、送信数が１となり送信制限数を超えないので、コマンド（Ａ）をストレージ装置２００に送信する。当該コマンド（Ａ）は、コネクション要求を含む。
【００６７】
ストレージ装置２００は、ＡＣＣ応答（Ａ）を業務サーバ１００に送信する。送信後、ストレージ装置２００は、業務サーバ１００からＡＣＣ応答（Ａ）を受信する。これにより、業務サーバ１００とストレージ装置２００は、コネクションを確立する。コネクションが１つしか確立できないため、業務サーバ１００とストレージ装置２００との通信は、コマンド（Ａ）に関する通信で占有される。
【００６８】
ＩＯＰ１２０および送信制御部１３０が送信するコマンド（Ａ）は、ストレージ装置２００が格納するデータの読み出し要求、またはストレージ装置２００に対するデータの書き込み要求を含む。以下の説明では、コマンド（Ａ）は、読み出し要求を含むものとする。ストレージ装置２００は、コネクション確立後、読み出し要求されたデータの読み出しの準備のため、一旦、コネクションを切断する。
【００６９】
（ＳＴ１３３）ストレージ装置２００は、コネクション切断（Ａ）の要求を送信制御部１３０に送信する。
（ＳＴ１３４）送信制御部１３０は、コネクション切断（Ａ）の要求をＩＯＰ１２０に送信する。これにより、業務サーバ１００とストレージ装置２００との間のコネクションは、切断される。
【００７０】
（ＳＴ１３５）ＩＯＰ１２０は、コマンド（Ｂ）を送信制御部１３０に送信する。当該コマンド（Ｂ）は、コネクション確立要求を含む。
（ＳＴ１３６）送信制御部１３０は、送信制限数に基づいて、コマンド（Ｂ）をストレージ装置２００に送信するか否かを判定する。ストレージ装置２００に送信したコマンドの送信数は、１である。送信制御部１３０は、コマンド（Ｂ）をストレージ装置２００に送信した場合、送信数が２となり送信制限数を超えないので、コマンド（Ｂ）をストレージ装置２００に送信する。当該コマンド（Ｂ）は、コネクション要求を含む。
【００７１】
ストレージ装置２００は、ＡＣＣ応答（Ｂ）を業務サーバ１００に送信する。送信後、ストレージ装置２００は、業務サーバ１００からＡＣＣ応答（Ｂ）を受信する。これにより、業務サーバ１００とストレージ装置２００は、コネクションを確立する。コネクションが１つしか確立できないため、業務サーバ１００とストレージ装置２００との通信は、コマンド（Ｂ）に関する通信で占有される。
【００７２】
ＩＯＰ１２０および送信制御部１３０が送信するコマンド（Ｂ）は、ストレージ装置２００が格納するデータの読み出し要求、またはストレージ装置２００に対するデータの書き込み要求を含む。以下の説明では、コマンド（Ｂ）は、読み出し要求を含むものとする。ストレージ装置２００は、コネクション確立後、読み出し要求されたデータの読み出しの準備のため、一旦、コネクションを切断する。
【００７３】
（ＳＴ１３７）ストレージ装置２００は、コネクション切断（Ｂ）の要求を送信制御部１３０に送信する。
（ＳＴ１３８）送信制御部１３０は、コネクション切断（Ｂ）の要求をＩＯＰ１２０に送信する。これにより、業務サーバ１００とストレージ装置２００との間のコネクションは、切断される。
【００７４】
（ＳＴ１３９）ＩＯＰ１２０は、コマンド（Ｃ）を送信制御部１３０に送信する。当該コマンド（Ｃ）は、コネクション確立要求を含む。
（ＳＴ１４０）送信制御部１３０は、送信制限数に基づいて、コマンド（Ｃ）をストレージ装置２００に送信するか否かを判定する。ストレージ装置２００に送信したコマンドの送信数は、２である。送信制御部１３０は、コマンド（Ｃ）をストレージ装置２００に送信した場合、送信数が３となり送信制限数を超えるので、Ｂｕｓｙ応答（Ｃ）をＩＯＰ１２０に送信する。これにより、ＩＯＰ１２０は、コマンド（Ｃ）がストレージ装置２００に送信されていないことを検出することができる。
【００７５】
（ＳＴ１４１）ストレージ装置２００は、コマンド（Ａ）で読み出し要求されたデータを業務サーバ１００に送信するための準備が完了したため、業務サーバ１００とのコネクションの確立を行う。ストレージ装置２００は、コネクション要求（Ａ）を送信制御部１３０に送信する。なお、コネクション要求（Ａ）は、ステップＳＴ１３２のコマンド（Ａ）によって予約されるコネクション要求に相当する。
【００７６】
（ＳＴ１４２）送信制御部１３０は、コネクション要求（Ａ）をＩＯＰ１２０に送信する。
（ＳＴ１４３）ＩＯＰ１２０は、ＡＣＣ応答（Ａ）を送信制御部１３０に送信する。
【００７７】
（ＳＴ１４４）送信制御部１３０は、ＡＣＣ応答（Ａ）をストレージ装置２００に送信する。これにより、業務サーバ１００とストレージ装置２００との間でコネクションが確立される。コネクションが１つしか確立できないため、業務サーバ１００とストレージ装置２００との通信は、コマンド（Ａ）に関する通信で占有される。
【００７８】
（ＳＴ１４５）ストレージ装置２００は、データ１（Ａ）を送信制御部１３０に送信する。
（ＳＴ１４６）ストレージ装置２００は、コマンド（Ｂ）で読み出し要求されたデータを業務サーバ１００に送信するための準備が完了したため、業務サーバ１００とのコネクションの確立を行う。ストレージ装置２００は、コネクション要求（Ｂ）を送信制御部１３０に送信する。
【００７９】
（ＳＴ１４７）送信制御部１３０は、業務サーバ１００とストレージ装置２００との間がコマンド（Ａ）に関する通信で占有されているため、コネクション要求（Ｂ）に対して応答できない。送信制御部１３０は、ストレージ装置２００にＢｕｓｙ応答（Ｂ）を送信する。
【００８０】
（ＳＴ１４８）ストレージ装置２００は、データ２（Ａ）を送信制御部１３０に送信する。
（ＳＴ１４９）ストレージ装置２００は、データ３（Ａ）を送信制御部１３０に送信する。
【００８１】
（ＳＴ１５０）ストレージ装置２００は、転送終了（Ａ）を送信制御部１３０に通知する。
（ＳＴ１５１）送信制御部１３０は、ＡＣＣ応答（Ａ）をストレージ装置２００に送信する。
【００８２】
（ＳＴ１５２）送信制御部１３０は、処理終了（Ａ）をＩＯＰ１２０に通知する。これにより、ＩＯＰ１２０は、コマンド（Ａ）に関する処理が終了したことを検出する。
（ＳＴ１５３）ＩＯＰ１２０は、コマンド（Ｃ）を送信制御部１３０に送信する。このように、ＩＯＰ１２０は、コマンド（Ａ）に関する処理の終了を検出するまで、コマンド（Ｃ）を送信制御部１３０に送信することを待機する。
【００８３】
（ＳＴ１５４）送信制御部１３０は、送信制限数に基づいて、コマンド（Ｃ）をストレージ装置２００に送信するか否かを判定する。ストレージ装置２００に送信したコマンドの送信数は、コマンド（Ｂ）がストレージ装置２００に送信済みなので、１である。すなわち、送信数は、コマンド（Ａ）の処理が完了したため、１（２−１）になる。送信制御部１３０は、コマンド（Ｃ）をストレージ装置２００に送信した場合、送信数が２となり送信制限数を超えないので、コマンド（Ｃ）をストレージ装置２００に送信する。
【００８４】
このように、業務サーバ１００は、ステップＳＴ１３９でコマンド（Ｃ）をストレージ装置２００に送信しないことで、コネクション要求（Ｃ）をストレージ装置２００から受信しなくなる。そのため、業務サーバ１００は、図４のようにＢｕｓｙ応答（Ｃ）をストレージ装置２００に送信しなくて済むので、業務サーバ１００の処理負担を軽減でき、スループットを改善できる。
【００８５】
また、ＩＯＰ１２０は、コマンド（Ｃ）の送信を待機して、ステップＳＴ１４１〜ＳＴ１５２の間にコマンド（Ｃ）を再送信しない。そのため、業務サーバ１００は、送信制御部１３０がステップＳＴ１４０のようにＢｕｓｙ応答（Ｃ）をＩＯＰ１２０に送信しなくて済むので、業務サーバ１００の処理負担を軽減できる。
【００８６】
なお、ＩＯＰ１２０は、ステップＳＴ１５２で送信制御部１３０から処理終了（Ａ）を受信しているが、ストレージ装置２００から処理終了（Ａ）を受信してもよい。
ところで、送信制限数によっては、業務サーバ１００のスループットに影響を与える可能性がある。送信制限数とスループットの関係について、図７のグラフを用いて説明する。
【００８７】
図７は、送信制限数とスループットとの関係を示すグラフの一例を示す図である。横軸は、送信制限数を示す。縦軸は、業務サーバ１００のスループットを示す。
例えば、点５０１の送信制限数のようにユーザが送信制限数を小さく設定した場合、業務サーバ１００のスループットは、低下する可能性がある。一方、点５０２の送信制限数のようにユーザが送信制限数を大きく設定した場合、業務サーバ１００のスループットは、低下する可能性がある。
【００８８】
送信制限数は、閾値以上の最大性能である点５０３の送信制限数が望ましい。しかし、ユーザが、点５０３の送信制限数を特定するのは困難である。そこで、更新制御部１４０は、ユーザが初期値として設定した送信制限数を点５０３の送信制限数に近づくように制御する。どのように制御するかについては、後で詳細に説明する。
【００８９】
ところで、送信制御部１３０は、コネクションを確立した後に、複数のコマンド（コマンドチェイン）をストレージ装置２００に送信する場合がある。送信制御部１３０は、ＩＯＰ１２０から受信したコマンドのヘッダを確認することで、コネクションを確立した後に複数のコマンド（コマンドチェイン）をストレージ装置２００に送信するか否かを確認できる。また、送信制御部１３０がコネクションを確立した後に、ストレージ装置２００に送信するコマンドの数をチェイン数と表現する。送信制御部１３０は、ＩＯＰ１２０から受信したコマンドのヘッダを確認することで、チェイン数を確認できる。
【００９０】
業務サーバ１００とストレージ装置２００との間のコネクション確立時間は、チェイン数が大きいほど長くなる。例えば、図６のステップＳＴ１３２でコネクションを確立した後、送信制御部１３０は、３つのコマンドをストレージ装置２００に送信する。ストレージ装置２００は、ステップＳＴ１４４でコネクションを確立した後、当該３つのコマンドに対する応答を業務サーバ１００に送信する。このように、送信制御部１３０が送信した複数のコマンドに対するストレージ装置２００の応答の数が多い場合、コネクション確立時間が長くなる。
【００９１】
コネクション確立時間が長い場合、例えば、図６のストレージ装置２００は、コネクション要求（Ｂ）を業務サーバ１００に送信する回数が増える。当該回数は、コネクション要求（Ｂ）を再送信した回数も含まれる。送信制御部１３０は、ストレージ装置２００からコネクション要求（Ｂ）を受信する回数が増えることで、ストレージ装置２００にＢｕｓｙ応答を送信する回数も増える。そのため、業務サーバ１００の処理負担は、高くなる。
【００９２】
このように、送信制御部１３０は、複数のコマンド（コマンドチェイン）をストレージ装置２００に送信した場合、業務サーバ１００のスループットに影響を与える。そこで、更新制御部１４０は、チェイン数も考慮に入れて、送信制限数を決める。
【００９３】
図８は、スループットとチェイン数との関係を示す図である。横軸は、送信制限数を示す。縦軸は、スループットを示す。図８は、チェイン数が大きい場合、送信制限数を小さくすることでスループットが高くなることを示している。また、図８は、チェイン数が小さい場合、送信制限数を大きくすることでスループットが高くなることを示している。
【００９４】
図９は、送信制限数とチェイン数との関係を示すグラフの一例を示す図である。横軸は、送信制限数を示す。縦軸は、チェイン数を示す。
更新制御部１４０は、チェイン数と送信制限数との関係が許容範囲外の場合で、チェイン数が大きいときには送信制限数を小さくする。例えば、更新制御部１４０は、チェイン数が点５１１の場合、送信制限数を小さくする。
【００９５】
更新制御部１４０は、チェイン数と送信制限数との関係が許容範囲外の場合で、チェイン数が小さいときには送信制限数を大きくする。例えば、更新制御部１４０は、チェイン数が点５１２の場合、送信制限数を大きくする。
【００９６】
更新制御部１４０は、チェイン数と送信制限数との関係が許容範囲内の場合、送信制限数を変更しない。例えば、更新制御部１４０は、チェイン数と送信制限数との関係が許容範囲内の点５１３の場合、送信制限数を変更しない。
【００９７】
図１０は、コマンド管理テーブルの一例を示す図である。コマンド管理テーブル１１１は、コマンドＩＤ、チェイン数の項目を含む。
コマンドＩＤの項目は、送信制御部１３０がストレージ装置２００に送信したコマンドを識別する情報を示す。チェイン数の項目は、送信制御部１３０がコネクションを確立した後に、ストレージ装置２００に送信するコマンド数を示す。
【００９８】
例えば、コマンド管理テーブル１１１は、コマンドＩＤ“Ｃ１”がストレージ装置２００に送信済みであることを示す。また、コマンド管理テーブル１１１は、送信制御部１３０がコマンドＩＤ“Ｃ１”のコネクションを確立した後に、ストレージ装置２００に送信するコマンド数が“８”であることを示す。
【００９９】
図１１は、送信管理テーブルの一例を示す図である。送信管理テーブル１１２は、送信数、チェイン合計数、総データ転送量の項目を含む。
送信数の項目は、ストレージ装置２００に送信済みのコマンドＩＤの数である。すなわち、送信数の項目は、コマンド管理テーブル１１１に登録されているコマンドＩＤの数である。また、送信数の項目は、ストレージ装置２００との間で確立中のコネクションの数と確立したコネクションによって予約されるコネクションの数とを合算した合算数と考えてもよい。送信数は、第１の実施の形態のコネクション数情報４ａ１が示す合算数の一形態である。
【０１００】
チェイン合計数の項目は、コマンド管理テーブル１１１に登録されているコマンドＩＤに対応するチェイン数の合計である。例えば、チェイン合計数の項目は、コマンド管理テーブル１１１に登録されているコマンドＩＤ“Ｃ１”に対応するチェイン数“８”とコマンドＩＤ“Ｃ２”に対応するチェイン数“３”の合計値“１１”を示す。
【０１０１】
総データ転送量の項目は、転送部１５０が所定時間内にデータをストレージ装置２００に転送したデータ転送量である。例えば、転送部１５０は、ストレージ装置２００にデータを転送する度に転送したデータ転送量を総データ転送量の項目に加算する。なお、例えば、所定時間は、１秒である。
【０１０２】
送信制御部１３０は、例えば、コマンドＩＤ“Ｃ１”に関する処理が終了したことをＩＯＰ１２０に通知した（例えば、図６のステップＳＴ１５２）後に、コマンド管理テーブル１１１からコマンドＩＤ“Ｃ１”のレコードを削除する。また、送信制御部１３０は、送信管理テーブル１１２の送信数を１つ減算する。送信制御部１３０は、送信管理テーブル１１２のチェイン合計数を３（１１−８）に更新する。
【０１０３】
図１２は、制御テーブルの一例を示す図である。制御テーブル１１３は、チェイン合計数、送信制限数、性能情報、増減情報の項目を含む。
チェイン合計数の項目は、チェイン数の合計を示す。送信制限数の項目は、ストレージ装置２００に送信可能なコマンド数を示す。性能情報の項目は、業務サーバ１００の性能を示す。増減情報の項目は、送信制限数の増減を示す。
【０１０４】
図１３は、更新判定処理の一例を示すフローチャートである。更新制御部１４０は、所定時間間隔で更新判定処理を実行する。例えば、所定時間は、１秒である。
（Ｓ１１）更新制御部１４０は、送信管理テーブル１１２の総データ転送量を取得する。更新制御部１４０は、送信管理テーブル１１２の総データ転送量を削除する。
【０１０５】
（Ｓ１２）更新制御部１４０は、ステップＳ１１で取得した総データ転送量を基に性能情報を算出する。例えば、上記の所定時間が１秒、総データ転送量が１０ＭＢの場合、更新制御部１４０は、１０ＭＢ／ｓを算出する。
【０１０６】
（Ｓ１３）更新制御部１４０は、送信管理テーブル１１２のチェイン合計数を特定する。
（Ｓ１４）更新制御部１４０は、ステップＳ１２で算出した性能情報が閾値以上であるか否かを判定する。例えば、閾値は、１７ＭＢ／ｓである。閾値は、記憶部１１０に格納されている。また、閾値は、所定時間単位における目標のデータ転送量を示す情報である。
【０１０７】
性能情報が閾値未満である場合、更新制御部１４０は、ステップＳ１５に進む。性能情報が閾値以上である場合、更新制御部１４０は、制御テーブル１１３を参照し、ステップＳ１３で特定したチェイン合計数のレコードを特定する。例えば、ステップＳ１３で特定したチェイン合計数が１１の場合、更新制御部１４０は、制御テーブル１１３のチェイン合計数“１１”のレコードを特定する。更新制御部１４０は、特定したレコードの性能情報にステップＳ１２で算出した性能情報を登録する。更新制御部１４０は、ステップＳ１６に進む。
【０１０８】
（Ｓ１５）更新制御部１４０は、更新処理を実行する。
（Ｓ１６）更新制御部１４０は、ステップＳ１１で取得した総データ転送量を破棄する。
【０１０９】
図１４は、更新処理の一例を示すフローチャートである。更新処理は、更新制御部１４０がステップＳ１５を実行することで、開始される。
（Ｓ２１）更新制御部１４０は、初回であるか否かを判定する。例えば、更新制御部１４０は、制御テーブル１１３を参照し、ステップＳ１３で特定したチェイン合計数のレコードを特定する。更新制御部１４０は、特定したレコードの性能情報が“０ＭＢ／ｓ”の場合、初回であると判定する。または、更新制御部１４０は、特定したレコードの増減情報が“ＮＵＬＬ”の場合、初回であると判定する。
【０１１０】
初回の場合、更新制御部１４０は、ステップＳ２２に進む。初回でない場合、更新制御部１４０は、ステップＳ２４に進む。
（Ｓ２２）更新制御部１４０は、ステップＳ２１で特定した制御テーブル１１３のレコードの送信制限数を１つ加算する。
【０１１１】
（Ｓ２３）更新制御部１４０は、ステップＳ２１で特定した制御テーブル１１３のレコードの増減情報に増加を登録する。また、更新制御部１４０は、ステップＳ２１で特定した制御テーブル１１３のレコードの性能情報にステップＳ１２で算出した性能情報を登録する。更新制御部１４０は、更新処理を終了する。
【０１１２】
（Ｓ２４）更新制御部１４０は、ステップＳ１２で算出した性能情報がステップＳ２１で特定した制御テーブル１１３のレコードの性能情報よりも低いか否かを判定する。ステップＳ１２で算出した性能情報がステップＳ２１で特定した制御テーブル１１３のレコードの性能情報よりも低い場合、更新制御部１４０は、ステップＳ２５に進む。ステップＳ１２で算出した性能情報がステップＳ２１で特定した制御テーブル１１３のレコードの性能情報よりも高い場合、更新制御部１４０は、ステップＳ３０に進む。なお、性能情報が同じ場合、更新制御部１４０は、更新処理を終了する。
【０１１３】
（Ｓ２５）更新制御部１４０は、ステップＳ２１で特定した制御テーブル１１３のレコードの増減情報が減少であるか否かを判定する。すなわち、更新制御部１４０は、送信制限数を前回減少させたか否かを判定する。増減情報が減少の場合、更新制御部１４０は、ステップＳ２６に進む。増減情報が増加の場合、更新制御部１４０は、ステップＳ２８に進む。
【０１１４】
（Ｓ２６）更新制御部１４０は、ステップＳ２１で特定した制御テーブル１１３のレコードの送信制限数を１つ加算する。すなわち、更新制御部１４０は、以下の条件を満たした場合、送信制限数を増加させる。条件は、今回の性能情報が閾値未満（ステップＳ１４のＮｏ）、かつ今回の性能情報が前回の性能情報よりも低い（ステップＳ２４のＹｅｓ）、かつ送信制限数を前回減少させた場合（ステップＳ２５のＹｅｓ）である。これにより、更新制御部１４０は、チェイン合計数に対応する送信制限数を最大性能の送信制限数に近づけることができる。
【０１１５】
（Ｓ２７）更新制御部１４０は、ステップＳ２１で特定した制御テーブル１１３のレコードの増減情報に増加を登録する。また、更新制御部１４０は、ステップＳ２１で特定した制御テーブル１１３のレコードの性能情報にステップＳ１２で算出した性能情報を登録する。更新制御部１４０は、更新処理を終了する。
【０１１６】
（Ｓ２８）更新制御部１４０は、ステップＳ２１で特定した制御テーブル１１３のレコードの送信制限数を１つ減算する。すなわち、更新制御部１４０は、以下の条件を満たした場合、送信制限数を減少させる。条件は、今回の性能情報が閾値未満（ステップＳ１４のＮｏ）、かつ今回の性能情報が前回の性能情報よりも低い（ステップＳ２４のＹｅｓ）、かつ送信制限数を前回増加させた場合（ステップＳ２５のＮｏ）である。これにより、更新制御部１４０は、チェイン合計数に対応する送信制限数を最大性能の送信制限数に近づけることができる。
【０１１７】
（Ｓ２９）更新制御部１４０は、ステップＳ２１で特定した制御テーブル１１３のレコードの増減情報に減少を登録する。また、更新制御部１４０は、ステップＳ２１で特定した制御テーブル１１３のレコードの性能情報にステップＳ１２で算出した性能情報を登録する。更新制御部１４０は、更新処理を終了する。
【０１１８】
（Ｓ３０）更新制御部１４０は、ステップＳ２１で特定した制御テーブル１１３のレコードの増減情報が増加であるか否かを判定する。すなわち、更新制御部１４０は、送信制限数を前回増加させたか否かを判定する。増減情報が増加の場合、更新制御部１４０は、ステップＳ３１に進む。増減情報が減少の場合、更新制御部１４０は、ステップＳ３３に進む。
【０１１９】
（Ｓ３１）更新制御部１４０は、ステップＳ２１で特定した制御テーブル１１３のレコードの送信制限数を１つ加算する。すなわち、更新制御部１４０は、以下の条件を満たした場合、送信制限数を増加させる。条件は、今回の性能情報が閾値未満（ステップＳ１４のＮｏ）、かつ今回の性能情報が前回の性能情報よりも高い（ステップＳ２４のＮｏ）、かつ送信制限数を前回増加させた場合（ステップＳ３０のＹｅｓ）である。これにより、更新制御部１４０は、チェイン合計数に対応する送信制限数を最大性能の送信制限数に近づけることができる。
【０１２０】
（Ｓ３２）更新制御部１４０は、ステップＳ２１で特定した制御テーブル１１３のレコードの増減情報に増加を登録する。また、更新制御部１４０は、ステップＳ２１で特定した制御テーブル１１３のレコードの性能情報にステップＳ１２で算出した性能情報を登録する。更新制御部１４０は、更新処理を終了する。
【０１２１】
（Ｓ３３）更新制御部１４０は、ステップＳ２１で特定した制御テーブル１１３のレコードの送信制限数を１つ減算する。すなわち、更新制御部１４０は、以下の条件を満たした場合、送信制限数を減少させる。条件は、今回の性能情報が閾値未満（ステップＳ１４のＮｏ）、かつ今回の性能情報が前回の性能情報よりも高い（ステップＳ２４のＮｏ）、かつ送信制限数を前回減少させた場合（ステップＳ３０のＮｏ）である。これにより、更新制御部１４０は、チェイン合計数に対応する送信制限数を最大性能の送信制限数に近づけることができる。
【０１２２】
（Ｓ３４）更新制御部１４０は、ステップＳ２１で特定した制御テーブル１１３のレコードの増減情報に減少を登録する。また、更新制御部１４０は、ステップＳ２１で特定した制御テーブル１１３のレコードの性能情報にステップＳ１２で算出した性能情報を登録する。更新制御部１４０は、更新処理を終了する。
【０１２３】
このように、更新制御部１４０は、更新処理を所定時間間隔で実行し、チェイン合計数に対応する送信制限数の増減を繰り返しながら、チェイン合計数に対応する送信制限数を図７に示す最大性能の送信制限数に近づける。
【０１２４】
図１５は、送信制限数の更新などの具体例（その１）を示す図である。制御テーブル１１３ａは、初期状態を示している。制御テーブル１１３ａの送信制限数は、ユーザにより設定される。例えば、送信制限数は、２である。送信管理テーブル１１２のチェイン合計数は、１１とする。
【０１２５】
更新制御部１４０は、送信管理テーブル１１２の総データ転送量を取得する。更新制御部１４０は、取得した総データ転送量を基に１０ＭＢ／ｓ（性能情報）を算出する。更新制御部１４０は、性能情報が閾値以上であるか否かを判定する。閾値は、１７ＭＢ／ｓとする。更新制御部１４０は、性能情報が閾値未満であり、制御テーブル１１３ａのチェイン合計数が１１のレコードが初期状態なので、制御テーブル１１３ａの送信制限数に３を登録する。更新制御部１４０は、制御テーブル１１３ａの性能情報に１０ＭＢ／ｓを登録する。また、更新制御部１４０は、制御テーブル１１３ａの増減情報に増加を登録する。制御テーブル１１３ｂは、制御テーブル１１３ａが更新された状態である。
【０１２６】
更新制御部１４０は、送信管理テーブル１１２の総データ転送量を取得する。更新制御部１４０は、取得した総データ転送量を基に１４ＭＢ／ｓ（性能情報）を算出する。更新制御部１４０は、１４ＭＢ／ｓが閾値未満と判定する。更新制御部１４０は、１４ＭＢ／ｓが制御テーブル１１３ｂの性能情報（１０ＭＢ／ｓ）よりも高いと判定する。更新制御部１４０は、制御テーブル１１３ｂの増減情報が増加であることを特定する。更新制御部１４０は、制御テーブル１１３ｂの送信制限数に４を登録する。更新制御部１４０は、制御テーブル１１３ｂの性能情報に１４ＭＢ／ｓを登録する。また、更新制御部１４０は、制御テーブル１１３ｂの増減情報に増加を登録する。制御テーブル１１３ｃは、制御テーブル１１３ｂが更新された状態である。
【０１２７】
更新制御部１４０は、送信管理テーブル１１２の総データ転送量を取得する。更新制御部１４０は、取得した総データ転送量を基に１８ＭＢ／ｓ（性能情報）を算出する。更新制御部１４０は、１８ＭＢ／ｓが閾値以上と判定する。更新制御部１４０は、制御テーブル１１３ｃの性能情報に１８ＭＢ／ｓを登録する。制御テーブル１１３ｄは、制御テーブル１１３ｃが更新された状態である。
【０１２８】
図１６は、送信制限数の更新などの具体例（その１）のグラフを示す図である。横軸は、送信制限数を示す。縦軸は、スループットを示す。点５２１は、制御テーブル１１３ａの時点の送信制限数である。点５２２は、制御テーブル１１３ｂの時点の送信制限数である。点５２３は、制御テーブル１１３ｃ，１１３ｄの時点の送信制限数である。このように、更新制御部１４０は、チェイン合計数に対応する送信制限数を最大性能の送信制限数に近づけることができる。
【０１２９】
図１７は、送信制限数の更新などの具体例（その２）を示す図である。制御テーブル１１３の送信制限数は、６とする。制御テーブル１１３の性能情報は、１５ＭＢ／ｓとする。制御テーブル１１３の増減情報は、増加とする。送信管理テーブル１１２のチェイン合計数は、１８とする。
【０１３０】
更新制御部１４０は、送信管理テーブル１１２の総データ転送量を取得する。更新制御部１４０は、取得した総データ転送量を基に１６ＭＢ／ｓ（性能情報）を算出する。更新制御部１４０は、性能情報が閾値以上であるか否かを判定する。閾値は、１７ＭＢ／ｓとする。更新制御部１４０は、１６ＭＢ／ｓが閾値未満と判定する。更新制御部１４０は、１６ＭＢ／ｓが制御テーブル１１３の性能情報（１５ＭＢ／ｓ）よりも高いと判定する。更新制御部１４０は、制御テーブル１１３の増減情報が増加であることを特定する。更新制御部１４０は、制御テーブル１１３の送信制限数に７を登録する。更新制御部１４０は、制御テーブル１１３の性能情報に１６ＭＢ／ｓを登録する。また、更新制御部１４０は、制御テーブル１１３の増減情報に増加を登録する。制御テーブル１１３ｅは、制御テーブル１１３が更新された状態である。
【０１３１】
更新制御部１４０は、送信管理テーブル１１２の総データ転送量を取得する。更新制御部１４０は、取得した総データ転送量を基に１４ＭＢ／ｓ（性能情報）を算出する。更新制御部１４０は、１４ＭＢ／ｓが閾値未満と判定する。更新制御部１４０は、１４ＭＢ／ｓが制御テーブル１１３ｅの性能情報（１６ＭＢ／ｓ）よりも低いと判定する。更新制御部１４０は、制御テーブル１１３ｅの増減情報が増加であることを特定する。更新制御部１４０は、制御テーブル１１３ｅの送信制限数に６を登録する。更新制御部１４０は、制御テーブル１１３ｅの性能情報に１４ＭＢ／ｓを登録する。また、更新制御部１４０は、制御テーブル１１３ｅの増減情報に減少を登録する。制御テーブル１１３ｆは、制御テーブル１１３ｅが更新された状態である。
【０１３２】
更新制御部１４０は、送信管理テーブル１１２の総データ転送量を取得する。更新制御部１４０は、取得した総データ転送量を基に１６ＭＢ／ｓ（性能情報）を算出する。更新制御部１４０は、１６ＭＢ／ｓが閾値未満と判定する。更新制御部１４０は、１６ＭＢ／ｓが制御テーブル１１３ｆの性能情報（１４ＭＢ／ｓ）よりも高いと判定する。更新制御部１４０は、制御テーブル１１３ｆの増減情報が減少であることを特定する。更新制御部１４０は、制御テーブル１１３ｆの送信制限数に５を登録する。更新制御部１４０は、制御テーブル１１３ｆの性能情報に１６ＭＢ／ｓを登録する。また、更新制御部１４０は、制御テーブル１１３ｆの増減情報に減少を登録する。制御テーブル１１３ｇは、制御テーブル１１３ｆが更新された状態である。
【０１３３】
更新制御部１４０は、送信管理テーブル１１２の総データ転送量を取得する。更新制御部１４０は、取得した総データ転送量を基に１８ＭＢ／ｓ（性能情報）を算出する。更新制御部１４０は、１８ＭＢ／ｓが閾値以上と判定する。更新制御部１４０は、制御テーブル１１３ｇの性能情報に１８ＭＢ／ｓを登録する。制御テーブル１１３ｈは、制御テーブル１１３ｇが更新された状態である。
【０１３４】
図１８は、送信制限数の更新などの具体例（その２）のグラフを示す図である。横軸は、送信制限数を示す。縦軸は、スループットを示す。点５３１は、制御テーブル１１３ｅの前の状態の制御テーブル１１３および制御テーブル１１３ｆの時点の送信制限数である。点５３２は、制御テーブル１１３ｅの時点の送信制限数である。点５３３は、制御テーブル１１３ｇ，１１３ｈの時点の送信制限数である。
【０１３５】
このように、更新制御部１４０は、チェイン合計数に対応する送信制限数を最大性能の送信制限数に近づけることができる。また、更新制御部１４０は、ステップＳ１２で算出した性能情報が閾値以上の場合、送信制限数を変更しないことで、業務サーバ１００の性能を一定以上の状態に保つことができる。
【０１３６】
図１９は、コマンド送信の判定処理の一例を示すフローチャートである。送信制御部１３０は、ＩＯＰ１２０からコマンドを受信したときに判定処理を実行する。
（Ｓ４１）送信制御部１３０は、送信管理テーブル１１２のチェイン合計数を特定する。
【０１３７】
（Ｓ４２）送信制御部１３０は、ＩＯＰ１２０から受信したコマンドのヘッダを参照し、チェイン数を特定する。なお、コネクションを確立後に複数のコマンドをストレージ装置２００に送信しないことをコマンドが示している場合、送信制御部１３０は、チェイン数を１とする。
【０１３８】
（Ｓ４３）送信制御部１３０は、ステップＳ４２で特定したチェイン数と送信管理テーブル１１２のチェイン合計数とを合算する。
（Ｓ４４）送信制御部１３０は、制御テーブル１１３を参照し、合算したチェイン数に対応するチェイン合計数のレコードを特定する。送信制御部１３０は、特定したレコードの送信制限数を特定する。例えば、合算したチェイン数が１８の場合、送信制御部１３０は、制御テーブル１１３のチェイン合計数“１８”に対応する送信制限数“５”を特定する。
【０１３９】
（Ｓ４５）送信制御部１３０は、ステップＳ４４で特定した送信制限数が送信管理テーブル１１２の送信数以下であるか否かを判定する。送信制限数が送信管理テーブル１１２の送信数以下の場合、送信制御部１３０は、ステップＳ４７に進む。送信制限数が送信管理テーブル１１２の送信数より大きい場合、送信制御部１３０は、ステップＳ４６に進む。
【０１４０】
（Ｓ４６）送信制御部１３０は、コマンドをストレージ装置に送信する。送信制御部１３０は、送信したコマンドに関する情報をコマンド管理テーブル１１１に登録する。送信制御部１３０は、送信管理テーブル１１２の送信数を１つ加算する。送信制御部１３０は、送信管理テーブル１１２のチェイン合計数に、ステップＳ４３で合算したチェイン数を登録する。送信制御部１３０は、判定処理を終了する。
【０１４１】
（Ｓ４７）送信制御部１３０は、Ｂｕｓｙ応答をＩＯＰ１２０に送信する。送信制御部１３０は、判定処理を終了する。
送信制御部１３０は、合算したチェイン数に対応する送信制限数を用いて、ステップＳ４５の判定を行う。すなわち、送信制御部１３０は、コネクションを確立した後の業務サーバ１００のスループットを考慮して決定された送信制限数で判定する。送信制御部１３０は、当該送信制限数を用いることで、コマンドを送信することを決定してストレージ装置２００にコマンドを送信しても業務サーバ１００のスループットが低下することを抑制できる。
【０１４２】
また、第１の実施の形態の情報処理は、通信制御装置４に用いられるプロセッサに、プログラムを実行させることで実現できる。第２の実施の形態の情報処理は、プロセッサ１０１にプログラムを実行させることで実現できる。プログラムは、コンピュータ読み取り可能な記録媒体に記録できる。
【０１４３】
例えば、プログラムを記録した記録媒体は、プログラムを流通させることで配布することができる。また、ＩＯＰ１２０、送信制御部１３０、更新制御部１４０、転送部１５０に相当する機能を実現するプログラムは、別個のプログラムとして各プログラムを別個に配布することができる。ＩＯＰ１２０、送信制御部１３０、更新制御部１４０、転送部１５０の機能は、別個のコンピュータにより実現されてもよい。コンピュータは、例えば、記録媒体に記録されたプログラムを、ＲＡＭ１０２やＨＤＤ１０３に格納し（インストールし）、記憶装置からプログラムを読み込んで実行してもよい。
【符号の説明】
【０１４４】
１  情報処理システム
２，５  通信装置
２ａ  通信要求
２ｂ  Ｂｕｓｙ応答
３  通信要求装置
４，６  通信制御装置
４ａ  記憶部
４ａ１  コネクション数情報
４ａ２  制限値情報
４ｂ  制御部
【図１】
2019004270.tif 000003
【図２】
2019004270.tif 000004
【図３】
2019004270.tif 000005
【図４】
2019004270.tif 000006
【図５】
2019004270.tif 000007
【図６】
2019004270.tif 000008
【図７】
2019004270.tif 000009
【図８】
2019004270.tif 000010
【図９】
2019004270.tif 000011
【図１０】
2019004270.tif 000012
【図１１】
2019004270.tif 000013
【図１２】
2019004270.tif 000014
【図１３】
2019004270.tif 000015
【図１４】
2019004270.tif 000016
【図１５】
2019004270.tif 000017
【図１６】
2019004270.tif 000018
【図１７】
2019004270.tif 000019
【図１８】
2019004270.tif 000020
【図１９】
2019004270.tif 000021