(57)【要約】【課題】情報処理システムの処理性能を向上させる。【解決手段】情報処理システム１は、情報処理装置２と、ストレージ装置３と、をそなえてよい。前記情報処理装置２は、前記ストレージ装置３へのアクセス要求を送信するための送信処理を実行してよい。前記ストレージ装置３は、前記送信処理により送信されたアクセス要求に応じた処理を行ない、前記情報処理装置２に応答を送信してよい。前記情報処理装置２又は前記ストレージ装置３は、前記送信処理に起因したアクセス要求の送信遅延に関する指標に基づいて、前記情報処理装置２への応答の送信タイミングの制御を実施するか否かを判定する判定部３２４をそなえてよい。前記ストレージ装置３は、前記判定部３２４による判定結果に基づいて、前記情報処理装置２への応答の送信タイミングを制御する応答制御部３２５をそなえてよい。【選択図】図５
2017228180.tif 000002
【特許請求の範囲】
【請求項１】
ストレージ装置へのアクセス要求を送信するための送信処理を実行する情報処理装置と、
前記送信処理により送信されたアクセス要求に応じた処理を行ない、前記情報処理装置に応答を送信する前記ストレージ装置と、をそなえ、
前記情報処理装置又は前記ストレージ装置は、
前記情報処理装置の送信処理に起因したアクセス要求の送信遅延に関する指標に基づいて、前記情報処理装置への応答の送信タイミングの制御を実施するか否かを判定する判定部、をそなえ、
前記ストレージ装置は、
前記判定部による判定結果に基づいて、前記情報処理装置への応答の送信タイミングを制御する応答制御部、をそなえる、
ことを特徴とする、情報処理システム。
【請求項２】
前記送信処理は、前記アクセス要求を送信キューに入力し、前記送信キューから所定の順序で前記アクセス要求を前記ストレージ装置に送信する処理を含み、
前記送信遅延に関する指標は、前記アクセス要求が前記送信キューに滞在する時間に関する第１の情報を含む、
ことを特徴とする、請求項１記載の情報処理システム。
【請求項３】
前記第１の情報は、
前記情報処理装置で測定された、前記送信処理を開始してから、前記ストレージ装置から応答を受信するまでの第１の時間と、
前記ストレージ装置で測定された、前記情報処理装置からアクセス要求を受信してから、前記情報処理装置に応答を送信するまでの第２の時間と、を含む、
ことを特徴とする、請求項２記載の情報処理システム。
【請求項４】
前記判定部は、前記第１の時間と前記第２の時間との時間差と、前記時間差の基準値との比較を行ない、比較結果に基づいて、前記送信タイミングの制御を実施するか否かを判定する、
ことを特徴とする、請求項３記載の情報処理システム。
【請求項５】
前記送信遅延に関する指標は、前記情報処理装置で測定された、前記情報処理装置のプロセッサが前記送信処理に割当可能な処理能力に関する第２の情報を含む、
ことを特徴とする、請求項２〜４のいずれか１項記載の情報処理システム。
【請求項６】
前記判定部は、前記第２の情報を用いて、前記プロセッサが前記送信処理に割当可能な処理能力を有しているか否かを判定する、
ことを特徴とする、請求項５記載の情報処理システム。
【請求項７】
前記送信タイミングの制御は、前記ストレージ装置における、前記アクセス要求に応じた処理、応答の生成処理、及び、生成した応答を前記情報処理装置に送信する処理、のうちの少なくとも１つの処理を遅延させる制御を含む、
ことを特徴とする、請求項１〜６のいずれか１項記載の情報処理システム。
【請求項８】
ストレージ装置に対してアクセス要求を送信するための送信処理を実行する送信処理部と、
前記送信処理に起因したアクセス要求の送信遅延に関する指標に基づいて、前記ストレージ装置から前記情報処理装置への応答の送信タイミングの制御を実施するか否かを判定する判定部と、をそなえる、
ことを特徴とする、情報処理装置。
【請求項９】
情報処理装置から送信処理により送信されたアクセス要求に応じて処理を行ない、前記情報処理装置に応答を送信する応答処理部と、
前記送信処理に起因したアクセス要求の送信遅延に関する指標に基づいて、前記情報処理装置への応答の送信タイミングを制御する応答制御部と、をそなえる、
ことを特徴とする、ストレージ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システム、情報処理装置、及びストレージ装置に関する。
【背景技術】
【０００２】
複数の装置を接続して運用する情報処理システムでは、情報処理システム全体としての性能、例えばＩＯ（Input Output；入出力）性能は、複数の装置のうちの処理性能が低い側の装置の性能で頭打ちとなる。
【０００３】
一例として、情報処理装置（例えばホストサーバ）とストレージ装置とを接続して運用する情報処理システムでは、情報処理装置側の性能が高い場合が多く、情報処理システム全体としてのＩＯ性能は、ストレージ装置の性能で頭打ちとなることが多い。
【０００４】
近年、ストレージ装置に搭載されるプロセッサの高速化に伴い、ストレージ装置のＩＯ性能が向上している。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００５−１９００５７号公報
【特許文献２】特開２００７−１７９３５９号公報
【特許文献３】特開２０１４−１０５１９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
情報処理装置とストレージ装置とを接続して運用する情報処理システムにおいて、システムの構築の際の設計や運用後のストレージ装置のリプレース等により、ＩＯ性能の高いストレージ装置が用いられる場合がある。
【０００７】
このような場合、ストレージ装置の処理性能が情報処理装置の処理性能を上回り、情報処理システム全体としてのＩＯ性能がホスト装置側の性能で頭打ちとなることがある。このため、ストレージ装置の性能を活かせず、システム全体のＩＯ性能が、ストレージ装置の性能を十分に発揮した場合よりも低下することがある。
【０００８】
１つの側面では、本発明は、情報処理システムの処理性能を向上させることを目的の１つとする。
【０００９】
なお、前記目的に限らず、後述する発明を実施するための形態に示す各構成により導かれる作用効果であって、従来の技術によっては得られない作用効果を奏することも本発明の他の目的の１つとして位置付けることができる。
【課題を解決するための手段】
【００１０】
１つの側面では、情報処理システムは、情報処理装置と、ストレージ装置と、をそなえてよい。前記情報処理装置は、前記ストレージ装置へのアクセス要求を送信するための送信処理を実行してよい。前記ストレージ装置は、前記送信処理により送信されたアクセス要求に応じた処理を行ない、前記情報処理装置に応答を送信してよい。前記情報処理装置又は前記ストレージ装置は、前記送信処理に起因したアクセス要求の送信遅延に関する指標に基づいて、前記情報処理装置への応答の送信タイミングの制御を実施するか否かを判定する判定部をそなえてよい。前記ストレージ装置は、前記判定部の判定結果に基づいて、前記情報処理装置への応答の送信タイミングを制御する制御部をそなえてよい。
【発明の効果】
【００１１】
１つの側面では、情報処理システムの処理性能を向上できる。
【図面の簡単な説明】
【００１２】
【図１】比較例に係る情報処理システムの構成例を示すブロック図である。
【図２】ＣＰＵの稼働状況の変化の一例を示す図である。
【図３】第１及び第２実施形態に係る情報処理システムの構成例を示すブロック図である。
【図４】第１及び第２実施形態に係るコンピュータのハードウェア構成例を示すブロック図である。
【図５】第１実施形態に係る情報処理システムの機能構成例を示すブロック図である。
【図６】第１実施形態に係るホスト装置及びＲＡＩＤ装置がそれぞれ管理する測定結果の一例を示す図である。
【図７】ホスト装置及びＲＡＩＤ装置が測定する応答時間の一例を説明する図である。
【図８】ホスト装置及びＲＡＩＤ装置が測定する応答時間の一例を説明する図である。
【図９】応答制御部による応答制御と、システムＣＰＵ時間との関係の一例を説明する図である。
【図１０】時系列に沿ったシステム全体のＩＯ処理性能の一例を示す図である。
【図１１】第１実施形態に係るホスト装置の動作例を説明するフローチャートである。
【図１２】第１実施形態に係るＲＡＩＤ装置の動作例を説明するフローチャートである。
【図１３】図１１に示す「サンプリング応答時間（Ａ）」の測定の動作例を示す図である。
【図１４】図１２に示す「サンプリング応答時間（Ｄ）」の測定の動作例を示す図である。
【図１５】図１１に示す「現在の応答時間（Ｂ）」の測定の動作例を示す図である。
【図１６】図１２に示す「現在の応答時間（Ｅ）」の測定の動作例を示す図である。
【図１７】図１１に示す「ＣＰＵ使用率（Ｃ）」の測定の動作例を示す図である。
【図１８】図１１及び図１２における、ホスト装置からＲＡＩＤ装置への測定結果の通知の動作例を示す図である。
【図１９】図１２における応答遅延処理の動作例を示す図である。
【図２０】第２実施形態に係る情報処理システムの機能構成例を示すブロック図である。
【図２１】第２実施形態に係るホスト装置及びＲＡＩＤ装置がそれぞれ管理する測定結果の一例を示す図である。
【図２２】第２実施形態に係るホスト装置の動作例を説明するフローチャートである。
【図２３】第２実施形態に係るＲＡＩＤ装置の動作例を説明するフローチャートである。
【図２４】第２実施形態に係るＲＡＩＤ装置における応答制御の動作例を説明するフローチャートである。
【図２５】図２２及び図２３における、ＲＡＩＤ装置からホスト装置への測定結果の通知の動作例を示す図である。
【図２６】図２２及び図２４における応答遅延処理の動作例を示す図である。
【発明を実施するための形態】
【００１３】
以下、図面を参照して本発明の実施の形態を説明する。ただし、以下に説明する実施形態は、あくまでも例示であり、以下に明示しない種々の変形や技術の適用を排除する意図はない。例えば、本実施形態を、その趣旨を逸脱しない範囲で種々変形して実施することができる。なお、以下の説明で用いる図面において、同一符号を付した部分は、特に断らない限り、同一若しくは同様の部分を表す。
【００１４】
〔１〕比較例
はじめに、図１を参照して、比較例に係る情報処理システム１００を説明する。図１に示すように、情報処理システム１００は、例示的に、ホスト装置２００及びＲＡＩＤ装置３００をそなえてよい。なお、ＲＡＩＤはRedundant Arrays of Inexpensive Disksの略称である。
【００１５】
ホスト装置２００は、ハードウェア構成として、ＣＰＵ（Central Processing Unit）２００ａ、メモリ２００ｂ、及びＨＢＡ（Host Bus Adaptor）２００ｃをそなえる。
【００１６】
また、ホスト装置２００は、メモリ２００ｂに展開されＣＰＵ２００ａにより実行されるソフトウェア構成として、１以上（図１の例では２つ）のアプリケーション２１０とＯＳ（Operating System）２２０とをそなえる。
【００１７】
ＯＳ２２０は、ＯＳ２２０の一部の機能、例えばＨＢＡドライバの一機能として、ＩＯキュー２３０をそなえる。ＩＯキュー２３０は、コマンドの待ち行列の一例である。
【００１８】
ＲＡＩＤ装置３００は、ハードウェア構成として、ＣＰＵ３００ａ、メモリ３００ｂ、ＣＡ（Channel Adaptor）３００ｃ、及び１以上（図１の例では２つ）の記憶装置３００ｄをそなえる。
【００１９】
以下、情報処理システム１００において、ホスト装置２００のアプリケーション２１０がＲＡＩＤ装置３００の記憶装置３００ｄに配置されたデータにアクセスする手順の一例を説明する。
【００２０】
はじめに、アプリケーション２１０がＲＡＩＤ装置３００へのＩＯ要求をＯＳ２２０に出力する（図１の矢印（ｉ）参照）。なお、ＩＯ要求は、アクセス要求の一例であり、例えば、ＲＡＩＤ装置３００へのリード又はライト等のアクセスに関するコマンドが含まれてよい。以下、ＩＯ要求を、「コマンド」或いは「アクセス要求」と表記する場合がある。
【００２１】
ＯＳ２２０は、受信したコマンドをＩＯキュー２３０に登録する。なお、ＩＯキュー２３０の行列には上限があるため、ＩＯキュー２３０に上限までコマンドが登録され、ＩＯキュー２３０に空きがない場合がある。この場合、ＯＳ２２０は、ＩＯキュー２３０に空きができたときに、次のコマンドを登録する。
【００２２】
ＩＯキュー２３０に空きができたときとは、例えば、ＩＯキュー２３０内の最も古いコマンドの１つ前のコマンドの処理が完了したことをＲＡＩＤ装置３００から報告され、最も古いコマンドをＲＡＩＤ装置３００に発行したとき等が挙げられる。
【００２３】
ＯＳ２２０は、ＩＯキュー２３０に登録されている最も古いコマンドをＲＡＩＤ装置３００に対して発行する。発行されたコマンドは、ＨＢＡ２００ｃ及びＣＡ３００ｃを経由してＲＡＩＤ装置３００に伝達される（矢印（ii）参照）。ＲＡＩＤ装置３００のＣＰＵ３００ａは、伝達されたコマンドを記憶装置３００ｄに対して実行する。
【００２４】
ＲＡＩＤ装置３００は、ＯＳ２２０が発行したコマンドが完了すると（例えば、コマンドに応じた処理が完了すると）、ＣＡ３００ｃ、ＨＢＡ２００ｃ及びＯＳ２２０を経由して、アプリケーション２１０にコマンドの完了を通知する（矢印（iii）参照）。
【００２５】
アプリケーション２１０は、コマンドが完了したことをＲＡＩＤ装置３００から報告されると、図１の矢印（ｉ）に示すように、アクセスに係る次のコマンドをＯＳ２２０に出力し、次のコマンドがＩＯキュー２３０に登録される。
【００２６】
ここで、上述した動作を行なう情報処理システム１００について、ホスト装置２００のＣＰＵ２００ａの使用率に着目する。図２は、ＣＰＵ２００ａの稼働状況の変化の一例を示す図である。
【００２７】
図２の（ａ）に示すように、ＣＰＵ２００ａの稼働時間は、その用途に応じて、例えば、「ユーザＣＰＵ時間」、「システムＣＰＵ時間」、及び「アイドル時間」に大別できる。なお、図２の（ａ）は、情報処理システム１００の定常状態の一例を示す。
【００２８】
「ユーザＣＰＵ時間」は、ＣＰＵ２００ａの稼動時間に対する、アプリケーション２１０自体がＣＰＵ２００ａを使用する合計時間の占める割合を意味してよい。また、「システムＣＰＵ時間」は、アプリケーション２１０の依頼でＯＳ２２０が処理を行なうためにＣＰＵ２００ａを使用する合計時間の占める割合を意味してよい。なお、ＯＳ２２０の処理には、ＲＡＩＤ装置３００に対するＩＯ処理を含んでよい。さらに、「アイドル時間」は、アプリケーション２１０及びＯＳ２２０がＣＰＵ２００ａを使用していない合計時間の占める割合を意味してよい。
【００２９】
図２の（ａ）の例では、「ユーザＣＰＵ時間」、「システムＣＰＵ時間」、及び「アイドル時間」の表示単位はそれぞれ「％」であり、これらの合計は１００％である。ＣＰＵ２００ａの使用率の内訳は可変であり、アプリケーション２１０自体が多く処理を行なっている場合は「ユーザＣＰＵ時間」の割合が増え、アプリケーション２１０の依頼でＯＳ２２０が多く処理を行なっている場合は「システムＣＰＵ時間」の割合が増える。
【００３０】
「アイドル時間」が存在するとき、アプリケーション２１０は「アイドル時間」を減らし、（例えば減らした分）「ユーザＣＰＵ時間」を増やしてアプリケーション２１０の処理量を増やすことができる。同様に、「アイドル時間」が存在するとき、ＯＳ２２０は「アイドル時間」を減らし、（例えば減らした分）「システムＣＰＵ時間」を増やしてＯＳ２２０の処理量を増やすことができる。
【００３１】
一例として、図１を参照して説明したように、アプリケーション２１０は、ＩＯキュー２３０にコマンドを登録するためには、「ユーザＣＰＵ時間」を使用する。換言すれば、「ユーザＣＰＵ時間」の割合が増加する。一方、ＩＯキュー２３０に空きがない場合、アプリケーション２１０は待ち状態となり、「ユーザＣＰＵ時間」の割合は減少する。
【００３２】
また、ＯＳ２２０は、ＩＯキュー２３０に登録されている最も古いコマンドをＲＡＩＤ装置３００に対して発行するためには、「システムＣＰＵ時間」を使用する。換言すれば、「システムＣＰＵ時間」の割合が増加する。一方、最も古いコマンドをＩＯキュー２３０からＲＡＩＤ装置３００に発行し終えたとき、「システムＣＰＵ時間」の割合は減少する。
【００３３】
ここで、ＯＳ２２０がコマンドをＲＡＩＤ装置３００に対して発行できるのは、「システムＣＰＵ時間」が使用できるとき、換言すれば、「アイドル時間」が存在し「システムＣＰＵ時間」を増やせる場合である。なお、「アイドル時間」が存在しない場合でも、コマンドをＲＡＩＤ装置３００に対して発行し終えて、そのために使用していた「システムＣＰＵ時間」が解放された場合、ＯＳ２２０は、「システムＣＰＵ時間」を増やしてコマンドを発行できる。
【００３４】
また、コマンドが完了したことの通知をＲＡＩＤ装置３００から受ける処理のために、ＯＳ２２０は「システムＣＰＵ時間」を使用し、アプリケーション２１０は「ユーザＣＰＵ時間」を使用する。
【００３５】
ここで、アプリケーション２１０は、ＩＯキュー２３０に空きがあれば、ＩＯキュー２３０がフルになるまで、「アイドル時間」を減らして「ユーザＣＰＵ時間」を増やし、連続して又はまとめて、複数のコマンドをＩＯキュー２３０に登録してよい。なお、このとき、ＯＳ２２０は、アプリケーション２１０から受信したコマンドについてＲＡＩＤ装置３００に対するＩＯ処理を行なうため、「システムＣＰＵ時間」も増加する。
【００３６】
図２の（ｂ）に、ＩＯキュー２３０がフルになった場合のＣＰＵ２００ａの稼働状況の一例を示す。図２の（ｂ）では、アプリケーション２１０が「ユーザＣＰＵ時間」を、アプリケーション２１０からコマンド発行を依頼されたＯＳ２２０が「システムＣＰＵ時間」を、それぞれ限界まで使用し、「アイドル時間」が０％になった場合を例示する。
【００３７】
ＩＯキュー２３０がフルになると、アプリケーション２１０は待ち状態となり、「ユーザＣＰＵ時間」は減少する。そして、「ユーザＣＰＵ時間」と「システムＣＰＵ時間」とが、図２の（ｃ）に例示するような均衡状態に収束する。
【００３８】
均衡状態では、上述のようにＩＯキュー２３０はフルであるため、アプリケーション２１０が次のコマンドをＩＯキュー２３０に登録する機会は、ＯＳ２２０が「システムＣＰＵ時間」を使ってＩＯキュー２３０内の最も古いコマンドを発行したときに制限される。この場合、ＩＯキュー２３０に空きができるまで、アプリケーション２１０によるコマンドの発行は制限される。
【００３９】
一方、ＲＡＩＤ装置３００は、さらに多くのコマンドが発行されれば、ＩＯ性能をさらに発揮できる状態であっても、ホスト装置２００からはこれ以上多くのコマンドが発行されないため、これ以上のＩＯ性能を発揮できない。
【００４０】
このように、ホスト装置２００のＣＰＵ２００ａの性能限界に起因して、ホスト装置２００、ひいては情報処理システム１００全体のＩＯ性能が飽和することがある（図２の（ｃ）参照）。換言すれば、ホスト装置２００よりも処理性能の高いＲＡＩＤ装置３００の処理性能を活かせない場合がある。
【００４１】
〔２〕実施形態について
そこで、後述する第１及び第２実施形態では、上述した運用形態において、情報処理システムの処理性能を向上させる手法について説明する。
【００４２】
第１及び第２実施形態では、後述するように、ＲＡＩＤ装置側のＩＯ処理の応答を制御することにより、ホスト装置のＣＰＵ時間の内訳を最適化し、情報処理システム全体のＩＯ性能を改善させることができる。ＲＡＩＤ装置側のＩＯ処理の応答の制御は、ホスト装置における送信処理に起因したアクセス要求の送信遅延に関する指標に基づいて、ホスト装置に適用するプログラム、及び、ＲＡＩＤ装置に適用するプログラムが協調して動作することで実現されてよい。
【００４３】
〔２−１〕情報処理システムの構成例
はじめに、図３を参照して、第１及び第２実施形態に係る情報処理システム１の構成例を説明する。なお、情報処理システム１の構成例は、後述する第１及び第２実施形態で共通に用いられてよい。
【００４４】
図３に示すように、情報処理システム１は、例示的に、ホスト装置２及びＲＡＩＤ装置３をそなえてよい。情報処理システム１は、ホスト装置２とＲＡＩＤ装置３とを接続して運用するシステムの一例である。
【００４５】
ホスト装置２は、ＲＡＩＤ装置３へのアクセス要求を送信するための送信処理を実行する情報処理装置の一例である。情報処理装置としては、サーバやＰＣ（Personal Computer）等のコンピュータが挙げられる。
【００４６】
ホスト装置２は、ハードウェア構成として、ＣＰＵ２ａ、メモリ２ｂ、ＨＢＡ２ｃ−１、及びＮＩＣ（Network Interface Card）２ｃ−２をそなえてよい。
【００４７】
また、ホスト装置２は、メモリ２ｂに展開されＣＰＵ２ａにより実行されるソフトウェア構成として、１以上（図３の例では２つ）のアプリケーション２１とＯＳ２２とをそなえてよい。
【００４８】
ＯＳ２２は、ホスト装置２の管理を行なう基本ソフトの一例である。ＯＳ２２は、ＯＳ２２の一部の機能として、ＩＯキュー２３及びホスト側制御部２４をそなえてよい。
【００４９】
ＩＯキュー２３は、例えば、ＨＢＡ２ｃ−１のドライバであるＨＢＡドライバにより管理されてよい。ＩＯキュー２３は、コマンドの待ち行列の一例であり、例えばＦＩＦＯ方式のデータ構造を有してよい。或いは、ＩＯキュー２３は、ＨＢＡドライバにより管理されるＨＢＡキューと、ＯＳ２２が管理するＯＳキューとの組み合わせとして位置付けられてもよい。
【００５０】
ホスト側制御部２４は、ＯＳ２２に追加される機能であってよく、例えばドライバ等のソフトウェアとして提供されてよい。ドライバとしては、例えば、ホスト装置２とＲＡＩＤ装置３とをマルチパスで接続するためのマルチパスドライバが挙げられる。ホスト側制御部２４については後述する。
【００５１】
ＣＰＵ２ａは、種々の制御や演算を行なうプロセッサの一例である。プロセッサとしては、ＣＰＵ２ａ等の演算処理装置に代えて、電子回路、例えばＭＰＵ（Micro Processing Unit）、ＡＳＩＣ（Application Specific Integrated Circuit）、又はＦＰＧＡ（Field Programmable Gate Array）等の集積回路（ＩＣ）が用いられてもよい。
【００５２】
メモリ２ｂは、種々のデータやプログラム等の情報を格納するハードウェアの一例である。メモリ２ｂとしては、例えばＲＡＭ（Random Access Memory）等の揮発性メモリが挙げられる。
【００５３】
ＨＢＡ２ｃ−１及びＮＩＣ２ｃ−２は、それぞれ、ＲＡＩＤ装置３等との間の接続及び通信の制御等を行なう通信インタフェースの一例である。
【００５４】
ＨＢＡ２ｃ−１としては、例えば、ＦＣ（Fibre Channel；ファイバチャネル）、ＳＡＳ、ＳＡＴＡ、イーサネット（Ethernet）（登録商標）、インフィニバンド（Infiniband）、又はＵＳＢ（Universal Serial Bus）等に準拠したアダプタが挙げられる。なお、ＳＡＳはSerial Attached SCSI (Small Computer System Interface)の略称であり、ＳＡＴＡはSerial ATA (Advanced Technology Attachment)の略称である。
【００５５】
ＮＩＣ２ｃ−２としては、例えば、イーサネット（登録商標）又はインフィニバンド等に準拠したアダプタが挙げられる。
【００５６】
ＲＡＩＤ装置３は、ホスト装置２から送信処理により送信されたアクセス要求に応じた処理を行ない、ホスト装置２に応答を送信するストレージ装置の一例である。ストレージ装置としては、ＲＡＩＤ装置に限定されず、他の構成又は態様でホスト装置２と通信する種々の装置が用いられてよい。
【００５７】
ＲＡＩＤ装置３は、ハードウェア構成として、ＣＰＵ３ａ、メモリ３ｂ、ＣＡ３ｃ−１、ＮＩＣ３ｃ−２、及び１以上（図３の例では２つ）の記憶装置３ｄをそなえてよい。
【００５８】
また、ＲＡＩＤ装置３は、メモリ３ｂに展開されＣＰＵ３ａにより実行されるソフトウェア構成として、ファームウェア３１をそなえてよい。
【００５９】
ファームウェア３１は、ＲＡＩＤ装置３の管理を行なう基本ソフトの一例である。ファームウェア３１は、ファームウェア３１の一部の機能として、ストレージ側制御部３２をそなえてよい。
【００６０】
ストレージ側制御部３２は、ファームウェア３１に追加される機能であってよく、例えばドライバ等のソフトウェアとして提供されてよい。ドライバとしては、例えば、マルチパスドライバが挙げられる。ストレージ側制御部３２については後述する。
【００６１】
ＣＡ３ｃ−１及びＮＩＣ３ｃ−２は、それぞれ、ホスト装置２等との間の接続及び通信の制御等を行なう通信インタフェースの一例である。
【００６２】
ＣＡ３ｃ−１としては、例えば、ＦＣ、ＳＡＳ、ＳＡＴＡ、イーサネット（登録商標）、インフィニバンド、又はＵＳＢ等に準拠したアダプタが挙げられる。
【００６３】
ＮＩＣ３ｃ−２としては、例えば、イーサネット（登録商標）又はインフィニバンド等に準拠したアダプタが挙げられる。
【００６４】
ホスト装置２のＨＢＡ２ｃ−１とＲＡＩＤ装置３のＣＡ３ｃ−１との間は、これらのインタフェースに準拠したケーブルやネットワーク等の通信回線４１によって相互に通信可能に接続されてよい。通信回線４１には、例えば、ＳＡＮ（Storage Area Network）、ＬＡＮ（Local Area Network）やＷＡＮ（Wide Area Network）等のイントラネット、或いはインターネット等が含まれてもよい。通信回線４１では、例えば、ホスト装置２−ＲＡＩＤ装置３間のアクセスに関するコマンドやデータ等の情報が伝送されてよい。
【００６５】
また、ホスト装置２のＮＩＣ２ｃ−２とＲＡＩＤ装置３のＮＩＣ３ｃ−２の間は、これらのインタフェースに準拠したケーブルやネットワーク等の管理回線４２によって相互に通信可能に接続されてよい。管理回線４２には、例えば、ＬＡＮやＷＡＮ等のイントラネット、或いはインターネット等が含まれてもよい。管理回線４２では、例えば、ホスト装置２及びＲＡＩＤ装置３の管理用の情報が伝送されてよい。
【００６６】
なお、ＣＰＵ３ａ、メモリ３ｂ、ＣＡ３ｃ−１、及びＮＩＣ２ｃ−２の少なくとも１つは、ＲＡＩＤ装置３の制御又は管理を行なうＣＭ（Controller Module）等に実装されてもよい。この場合、ＣＭはＲＡＩＤ装置３に複数設けられて冗長化されてもよい。また、ＣＭはＲＡＩＤ装置３全体を制御又は管理するＣＥ（Controller Enclosure）に搭載されてもよい。
【００６７】
記憶装置３ｄは、種々のデータやプログラム等の情報を格納するハードウェアの一例である。ＲＡＩＤ装置３では、例えば、複数の記憶装置３ｄを用いてＲＡＩＤが構成されてもよい。記憶装置３ｄとしては、例えばＨＤＤ（Hard Disk Drive）等の磁気ディスク装置、又は、ＳＳＤ（Solid State Drive）等の半導体ドライブ装置等の各種装置が挙げられる。なお、記憶装置３ｄは、例えば複数の記憶装置３ｄを搭載するＤＥ（Drive Enclosure）等に実装されてもよい。
【００６８】
〔２−２〕ハードウェア構成例
次に、ホスト装置２及びＲＡＩＤ装置３のハードウェア構成例について説明する。なお、ホスト装置２と、ＲＡＩＤ装置３の少なくとも一部（例えばＣＭ）とは、同様のハードウェア構成をそなえてもよい。以下、便宜上、ホスト装置２と、ＲＡＩＤ装置３の少なくとも一部（例えばＣＭ）とをまとめてコンピュータ１０と表記し、コンピュータ１０のハードウェア構成例を説明する。
【００６９】
図４に示すように、コンピュータ１０は、例示的に、ＣＰＵ１０ａ、メモリ１０ｂ、ＩＦ（Interface）部１０ｃ、記憶部１０ｄ、入出力部１０ｅ、及び読取部１０ｆをそなえてよい。
【００７０】
ＣＰＵ１０ａは、図３に示すＣＰＵ２ａ又は３ａの一例である。ＣＰＵ１０ａは、コンピュータ内の各ブロックとバスで相互に通信可能に接続されてよい。メモリ１０ｂは、図３に示すメモリ２ｂ又は３ｂの一例である。
【００７１】
ＩＦ部１０ｃは、ネットワーク又はデバイス等との間の接続及び通信の制御等を行なう通信インタフェースの一例である。ＩＦ部１０ｃは、図３に示すＨＢＡ２ｃ−１及びＮＩＣ２ｃ−２、又は、ＣＡ３ｃ−１及びＮＩＣ３ｃ−２の一例である。また、ＲＡＩＤ装置３において、ＩＦ部１０ｃには、記憶装置３ｄとの間の接続及び通信の制御等を行なうＤＡ（Device Adaptor）等が含まれてもよい。
【００７２】
記憶部１０ｄは、種々のデータやプログラム等の情報を格納するハードウェアの一例である。記憶部１０ｄとしては、例えばＨＤＤ等の磁気ディスク装置、ＳＳＤ等の半導体ドライブ装置、又は、フラッシュメモリやＲＯＭ（Read Only Memory）等の不揮発性メモリ、等の各種装置が挙げられる。なお、ＲＡＩＤ装置３は、記憶装置３ｄとは別に記憶部１０ｄをそなえてもよい。
【００７３】
例えば記憶部１０ｄは、ホスト装置２又はＲＡＩＤ装置３の各種機能の全部若しくは一部を実現する制御プログラム１０ｈを格納してよい。ＣＰＵ１０ａは、例えば記憶部１０ｄに格納された制御プログラム１０ｈをメモリ１０ｂに展開して実行することにより、ホスト装置２又はＲＡＩＤ装置３の機能を実現できる。
【００７４】
なお、制御プログラム１０ｈは、図示しないネットワーク等からＩＦ部１０ｃを介してホスト装置２又はＲＡＩＤ装置３にダウンロードされてもよい。
【００７５】
入出力部１０ｅは、マウス、キーボード、又は操作ボタン等の入力部、並びに、ディスプレイ又はプリンタ等の出力部、の一方又は双方を含んでよい。
【００７６】
読取部１０ｆは、記録媒体１０ｇに記録されたデータやプログラムの情報を読み出すリーダの一例である。読取部１０ｆは、コンピュータが読取可能な記録媒体１０ｇを接続可能又は挿入可能な接続端子又は装置を含んでよい。読取部１０ｆとしては、例えばＵＳＢ等に準拠したアダプタ、記録ディスクへのアクセスを行なうドライブ装置、ＳＤカード等のフラッシュメモリへのアクセスを行なうカードリーダ等が挙げられる。なお、記録媒体１０ｇには制御プログラム１０ｈが格納されてもよい。
【００７７】
記録媒体１０ｇとしては、例示的に、フレキシブルディスク、ＣＤ、ＤＶＤ、ブルーレイディスク等の光ディスクや、ＵＳＢメモリやＳＤカード等のフラッシュメモリ、等の非一時的な記録媒体が挙げられる。なお、ＣＤとしては、例示的に、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ等が挙げられる。また、ＤＶＤとしては、例示的に、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＤＶＤ−Ｒ、ＤＶＤ−ＲＷ、ＤＶＤ＋Ｒ、ＤＶＤ＋ＲＷ等が挙げられる。
【００７８】
上述したコンピュータ１０のハードウェア構成は例示である。従って、ホスト装置２又はＲＡＩＤ装置３内でのハードウェアの増減（例えば任意のブロックの追加や削除）、分割、任意の組み合わせでの統合、又は、バスの追加若しくは削除等は適宜行なわれてもよい。例えば、入出力部１０ｅ及び読取部１０ｆはＲＡＩＤ装置３に存在しなくてもよい。
【００７９】
〔３〕第１実施形態
〔３−１〕機能構成例
次に、第１実施形態について説明する。図５は、第１実施形態に係る情報処理システム１Ａの機能構成例を示すブロック図である。情報処理システム１Ａは、図３に示す情報処理システム１の一例である。
【００８０】
図５に示すように、情報処理システム１Ａにおいて、ホスト装置２のＯＳ２２は、機能構成として、ホスト側制御部２４Ａ及びＩＯ処理部２５をそなえてよい。
【００８１】
ＩＯ処理部２５は、送信キューの一例としてのＩＯキュー２３を管理し、アプリケーション２１から入力されるアクセス要求に関する種々の処理を行なってよい。ＩＯ処理部２５による処理には、例えば、入力されるＩＯ要求のＩＯキュー２３への入力、ＩＯキュー２３から所定の順序でコマンドをＲＡＩＤ装置３に送信する処理、等が含まれてよい。また、ＩＯ処理部２５による処理には、ＲＡＩＤ装置３からの応答の受信及びアプリケーション２１への当該応答の通知、等が含まれてよい。
【００８２】
換言すれば、ＩＯ処理部２５は、ＲＡＩＤ装置３に対してアクセス要求を送信するための送信処理を実行する送信処理部の一例である。また、ＩＯ処理部２５は、後述する手法によって送信タイミングが制御された、ホスト装置２への応答を、ＲＡＩＤ装置３から受信する受信部の一例である。
【００８３】
ＩＯ処理部２５の処理では、「システムＣＰＵ時間」が用いられてよい。ＩＯ処理部２５は、例えば、ＨＢＡドライバの少なくとも一部の機能により実現されてよく、通信回線４１を介してＲＡＩＤ装置３との間で情報を伝送してよい。
【００８４】
ホスト側制御部２４Ａは、図３に示すホスト側制御部２４の一例であり、図５に示すように、例示的に、ＩＯ性能測定部２４１、システム性能測定部２４２、メモリ部２４３、及び通信部２４４をそなえてよい。
【００８５】
ＩＯ性能測定部２４１は、アクセスに関するコマンドの応答時間（レスポンスタイム）を測定し、測定結果をメモリ部２４３に格納する。ＩＯ性能測定部２４１が測定する応答時間は、後述するＲＡＩＤ装置３のＩＯ性能測定部３２２が測定する応答時間と合わせて、アクセス要求がＩＯキュー２３に滞在する時間に関する第１の情報の一例である。
【００８６】
コマンドの応答時間は、例えば、ＩＯ処理部２５が送信処理を開始してから、ＲＡＩＤ装置３から応答（例えば完了報告）を受信するまでの第１の時間であってよい。例えば、ＩＯ性能測定部２４１は、ＩＯ処理部２５を監視し、応答時間の測定に用いる時刻を取得してよい。
【００８７】
一例として、ＩＯ性能測定部２４１は、コマンドがＩＯ処理部２５に入力されたときの時刻を取得してよい。また、ＩＯ性能測定部２４１は、ＲＡＩＤ装置３からの応答がＩＯ処理部２５で受信されたときの時刻を取得してよい。そして、ＩＯ性能測定部２４１は、応答の受信時刻からコマンドの入力時刻を減算することで、これらの時刻の時間差をホスト装置２での「応答時間（レスポンスタイム）」として取得してよい。
【００８８】
応答時間の測定は、ホスト装置２のＯＳ２２の起動後、アプリケーション２１が処理を開始していないとき等の初期状態で行なわれてもよい。また、応答時間の測定は、アプリケーション２１が処理を行なっている運用中（例えば業務中）に、任意のタイミングで（例えば一定時間ごとに）行なわれてもよい。
【００８９】
初期状態での応答時間の測定では、ＩＯ性能測定部２４１は、テストＩＯのコマンド（以下、「テストコマンド」と表記する場合がある）を生成しＩＯ処理部２５に入力することで、ホスト装置２の「サンプリング応答時間（Ａ）」を取得してよい。
【００９０】
なお、テストコマンドに係る、ライト及びリードの種別、アクセスに係るデータサイズ、ＲＡＩＤ装置３内でのキャッシュのヒット／ミス等については、任意であってよい。一例として、テストコマンドは、ＲＡＩＤ装置３の記憶装置３ｄにおけるソフトウェアの管理領域に対して、任意のサイズのデータを書き込むコマンドであってもよい。
【００９１】
運用中の応答時間の測定では、ＩＯ性能測定部２４１は、アプリケーション２１からＩＯ処理部２５に入力されるコマンドを対象として、ホスト装置２での「現在の応答時間（Ｂ）」を取得してよい。なお、「現在の」とは、応答時間を測定する任意のタイミングの前後一定期間を意味してよい。例えば、ＩＯ性能測定部２４１は、当該タイミングの前後一定期間内にアプリケーション２１からＩＯ処理部２５に入力されるコマンドを、「現在の応答時間（Ｂ）」の測定対象として選択してよい。
【００９２】
なお、応答時間の始点及び終点は、上述したものに限定されるものではない。応答時間の始点（測定の開始タイミング）は、例えば、アプリケーション２１がＯＳ２２にコマンドの送信要求を出力したときの時刻、或いは、ＩＯキュー２３にＩＯ要求が登録されたときの時刻であってもよい。また、応答時間の終点（測定の終了タイミング）は、例えば、ＲＡＩＤ装置３からの応答がアプリケーション２１で受信されたときの時刻であってもよい。
【００９３】
システム性能測定部２４２は、システムの現在の処理性能を測定する。処理性能は、ホスト装置２のＣＰＵ２ａが送信処理に割当可能な処理能力に関する第２の情報の一例である。
【００９４】
例えば、システム性能測定部２４２は、任意のタイミング、例えば一定時間ごとに、ホスト装置２のＣＰＵ２ａの使用率に関する情報を測定し、測定した結果を「ＣＰＵ使用率（Ｃ）」としてメモリ部２４３に格納してよい。
【００９５】
ＣＰＵ２ａの使用率に関する情報としては、例えば、現在の「アイドル時間」、換言すれば、ＣＰＵ２ａの稼働時間に対する、アプリケーション２１及びＯＳ２２がＣＰＵ２ａを使用していない合計時間の占める割合の情報が含まれてよい。なお、ＣＰＵ２ａの使用率に関する情報には、現在の「ユーザＣＰＵ時間」及び「システムＣＰＵ時間」の少なくとも一方が含まれてもよい。
【００９６】
メモリ部２４３は、ＩＯ性能測定部２４１及びシステム性能測定部２４２による測定結果２４３ａの情報を格納する。メモリ部２４３は、例えば図３に示すメモリ２ｂの記憶領域により実現されてよい。
【００９７】
測定結果２４３ａは、図６に例示するように、「サンプリング応答時間（Ａ）」、「現在の応答時間（Ｂ）」、及び「ＣＰＵ使用率（Ｃ）」を含んでよい。なお、測定結果２４３ａのうち、「現在の応答時間（Ｂ）」及び「ＣＰＵ使用率（Ｃ）」については、少なくとも最新の情報が含まれていればよく、例えば「現在の応答時間（Ｂ）」及び「ＣＰＵ使用率（Ｃ）」を格納する際に、過去の情報は削除されてもよい。
【００９８】
通信部２４４は、ＲＡＩＤ装置３との間で管理情報の通信を行なう。例えば、通信部２４４は、ＲＡＩＤ装置３に対して、メモリ部２４３に格納された測定結果２４３ａの少なくとも一部の情報を送信してよい。
【００９９】
例えば、通信部２４４は、図６に例示するように、測定結果２４３ａのうちの「サンプリング応答時間（Ａ）」については、システム（例えばＯＳ２２）起動後、換言すれば、ＩＯ性能測定部２４１による測定後に、ＲＡＩＤ装置３に送信してよい。また、通信部２４４は、図６に例示するように、測定結果２４３ａのうちの「現在の応答時間（Ｂ）」及び「ＣＰＵ使用率（Ｃ）」については、一定時間ごと、換言すれば、ＩＯ性能測定部２４１による各測定の後、ＲＡＩＤ装置３に送信してよい。一定時間は、ユーザが任意で設定してよい。
【０１００】
なお、通信部２４４は、管理回線４２を介してＲＡＩＤ装置３との間で情報を伝送してよい。通信部２４４は、ＨＢＡ２ｃ−１及びＣＰＵ２ａの少なくとも一部により実現されてよい。
【０１０１】
情報処理システム１Ａにおいて、ＲＡＩＤ装置３のファームウェア３１は、機能構成として、ストレージ側制御部３２Ａ及びＩＯ処理・応答部３３をそなえてよい。
【０１０２】
ＩＯ処理・応答部３３は、ホスト装置２から受信するＩＯのコマンドに関する種々の処理を行なってよい。ＩＯ処理・応答部３３による処理には、例えば、ホスト装置２から受信するコマンドの処理、並びに、コマンドの処理結果に基づくホスト装置２への応答処理、等が含まれてよい。なお、コマンドの処理には、コマンドに応じた記憶装置３ｄへのアクセスが含まれてよい。
【０１０３】
換言すれば、ＩＯ処理・応答部３３は、ホスト装置２から送信処理により送信されたアクセス要求に応じて処理を行ない、ホスト装置２に応答を送信する応答処理部の一例である。
【０１０４】
ストレージ側制御部３２Ａは、図３に示すストレージ側制御部３２の一例であり、図５に示すように、例示的に、通信部３２１、ＩＯ性能測定部３２２、メモリ部３２３、判定部３２４、及び応答制御部３２５をそなえてよい。
【０１０５】
通信部３２１は、ホスト装置２との間で管理情報の通信を行なう。例えば、通信部３２１は、ホスト装置２のメモリ部２４３に格納された測定結果２４３ａの少なくとも一部の情報を、ホスト装置２の通信部２４４から受信し、受信した情報を、ホスト側測定結果３２３ａとしてメモリ部３２３に格納してよい。
【０１０６】
ＩＯ性能測定部３２２は、ＲＡＩＤ装置３でのコマンドの応答時間（レスポンスタイム）を測定し、測定結果をメモリ部３２３に格納する。ＩＯ性能測定部３２２が測定する応答時間は、ＩＯ性能測定部２４１が測定する応答時間と合わせて、第１の情報の一例である。
【０１０７】
ＲＡＩＤ装置３でのコマンドの応答時間は、例えば、ホスト装置２からアクセス要求を受信してから、ホスト装置２に応答を送信するまでの第２の時間であってよい。例えば、ＩＯ性能測定部３２２は、ＩＯ処理・応答部３３を監視し、応答時間の測定に用いる時刻を取得してよい。
【０１０８】
一例として、ＩＯ性能測定部３２２は、ＣＡ３ｃ−１（図３参照）にコマンドが入力されたときの時刻を取得してよい。また、ＩＯ性能測定部３２２は、ＣＡ３ｃ−１から応答が送信されたときの時刻を取得してよい。そして、ＩＯ性能測定部３２２は、応答の送信時刻からコマンドの受信時刻を減算することで、これらの時刻の時間差をＲＡＩＤ装置３での「応答時間（レスポンスタイム）」として取得してよい。
【０１０９】
ＲＡＩＤ装置３での応答時間の測定は、ホスト装置２の初期状態において行なわれてもよい。また、ＲＡＩＤ装置３での応答時間の測定は、アプリケーション２１の運用中（例えば業務中）に、任意のタイミングで（例えば一定時間ごとに）行なわれてもよい。
【０１１０】
初期状態での応答時間の測定では、ＩＯ性能測定部３２２は、テストコマンドを対象に応答時間の測定を行なうことで、ＲＡＩＤ装置３での「サンプリング応答時間（Ｄ）」を取得してよい。なお、コマンドがテストコマンドであるか通常（運用中）のコマンドであるかの判定は、事前に設定されたテストコマンドの条件に基づきＩＯ処理・応答部３３又はＩＯ性能測定部３２２により行なわれてよい。テストコマンドの条件としては、ライト及びリードの種別、アクセス対象のアドレス、データ内容等の種々の条件が挙げられる。
【０１１１】
運用中の応答時間の測定では、ＩＯ性能測定部３２２は、アプリケーション２１から受信したテストコマンド以外のコマンドを対象として、ＲＡＩＤ装置３での「現在の応答時間（Ｅ）」を取得してよい。
【０１１２】
なお、応答時間の始点及び終点は、上述したものに限定されるものではない。応答時間の始点（測定の開始タイミング）は、例えば、ＩＯ要求がＩＯ処理・応答部３３に入力されたときの時刻であってよい。また、応答時間の終点（測定の終了タイミング）は、例えば、ＩＯ応答がＩＯ処理・応答部３３からＣＡ３ｃ−１に出力されたときの時刻であってもよい。
【０１１３】
メモリ部３２３は、通信部３２１がホスト装置２から受信したホスト側測定結果３２３ａの情報と、ＩＯ性能測定部３２２による測定結果３２３ｂの情報とを格納する。メモリ部３２３は、例えば図３に示すメモリ３ｂの記憶領域により実現されてよい。
【０１１４】
ホスト側測定結果３２３ａは、ホスト装置２での測定結果であり、図６に例示するように、ホスト装置２での測定結果２４３ａと同様、「サンプリング応答時間（Ａ）」、「現在の応答時間（Ｂ）」、及び「ＣＰＵ使用率（Ｃ）」を含んでよい。
【０１１５】
測定結果３２３ｂは、図６に例示するように、「サンプリング応答時間（Ｄ）」及び「現在の応答時間（Ｅ）」を含んでよい。なお、測定結果３２３ｂのうち、「現在の応答時間（Ｅ）」については、少なくとも最新の情報が含まれていればよく、例えば「現在の応答時間（Ｅ）」を格納する際に、過去の情報は削除されてもよい。
【０１１６】
判定部３２４は、メモリ部３２３に格納されたホスト側測定結果３２３ａ及び測定結果３２３ｂの情報に基づいて、システムのＩＯ性能の評価を行なう。例えば、判定部３２４は、以下の第１及び第２条件の双方が満たされる場合に、ホスト装置２のＣＰＵ２ａの性能限界に起因してシステム全体のＩＯ性能が飽和した状態、換言すればＲＡＩＤ装置３の性能を活かせていない状態に陥ったと判断してよい。
【０１１７】
・第１条件：（Ｃ）のうちの「アイドル時間」＝０％
・第２条件：（Ｂ）−（Ｅ）＞（Ａ）−（Ｄ）
【０１１８】
ここで、上記第１及び第２条件で用いられる、（Ａ）〜（Ｅ）は、メモリ部３２３に格納されたホスト側測定結果３２３ａ及び測定結果３２３ｂの情報であり、これらの情報は、送信処理に起因したアクセス要求の送信遅延に関する指標の一例である。
【０１１９】
第１条件は、ＣＰＵ２ａが送信処理に割当可能な処理能力を有しているか否かの判定であるといえる。第１条件が満たされる場合、図２の（ｂ）及び（ｃ）に例示するように、ホスト装置２のＣＰＵ２ａの稼働時間に「アイドル時間」が存在せず、送信処理に割当可能な処理能力が存在しないことを意味する。
【０１２０】
なお、ＩＯ処理以外の処理によって「アイドル時間」が存在しない場合にも、第１条件が満たされることがある。
【０１２１】
そこで、判定部３２４は、第２条件として、図２の（ｃ）に例示するようにＯＳ２２でのＩＯの処理が滞った状態を検出するため、現在のＩＯの待ち時間が初期状態のときの待ち時間よりも長いか否かを判定するのである。換言すれば、判定部３２４は、第１の時間の一例である（Ｂ）と第２の時間の一例である（Ｅ）との時間差と、当該時間差の基準値の一例である（Ａ）−（Ｄ）との比較を行なう。
【０１２２】
判定部３２４は、上記第１条件及び第２条件が満たされると判定した場合、応答制御部３２５に対して、ホスト装置２への応答制御を実施させてよい。
【０１２３】
応答制御部３２５は、判定部３２４からの指示によって、ホスト装置２のＯＳ２２が発行したコマンドに対する応答を、所定時間遅延させる制御を行なう。所定時間は、例えば１ｍｓ等の固定の一単位であってよい。以下、遅延させる所定時間を、「遅延時間」と表記する場合がある。
【０１２４】
応答制御部３２５による応答の遅延制御は、ＩＯ処理・応答部３３での処理、例えば、アクセス要求に応じた処理、応答の生成処理、及び、生成した応答をホスト装置２に送信する処理、のうちの少なくとも１つの処理を遅延させる制御を含んでよい。これにより、応答を確実に遅延させることができる。
【０１２５】
判定部３２４及び応答制御部３２５の処理は、一定時間ごと、例えばホスト装置２の通信部２４４からホスト装置２での測定結果２４３ａを受信するごとに、受信した測定結果２４３ａと測定結果３２３ｂとを用いて実施されてよい。
【０１２６】
応答制御部３２５は、上記第１及び第２条件の少なくとも一方が成立しなくなるまでの間、遅延時間を累積させてよい。換言すれば、判定部３２４から応答制御を指示される都度、応答を返すまでの時間に「遅延時間」を加算してよい。
【０１２７】
なお、判定部３２４及び応答制御部３２５による制御によって、例えば、第２条件が（Ｂ）−（Ｅ）＝（Ａ）−（Ｄ）の状態になった場合、判定部３２４からの指示により、応答制御部３２５は、応答の遅延制御を停止、例えば遅延制御をキャンセルしてよい。
【０１２８】
以上のように、判定部３２４は、送信処理に起因したアクセス要求の送信遅延に関する指標に基づいて、ホスト装置２への応答の送信タイミングの制御を実施するか否かを判定するといえる。また、応答制御部３２５は、判定部による判定結果に基づいて、ホスト装置２への応答の送信タイミングを制御する制御部の一例である。
【０１２９】
ここで、図７及び図８を参照して、判定部３２４及び応答制御部３２５の制御と、システム全体のＩＯ性能との関係について説明する。図７及び図８は、ホスト装置２及びＲＡＩＤ装置３が測定する応答時間の一例を説明する図である。
【０１３０】
図７に示すように、ホスト装置２のアプリケーション２１がＩＯ要求をＯＳ２２に出力する（処理Ａ１）。ＯＳ２２は、入力されたＩＯ要求をＩＯキュー２３に格納し、送信順序に従いＩＯキュー２３からＩＯ要求（例えばコマンド）をＲＡＩＤ装置３に送信する（処理Ａ２）。
【０１３１】
次いで、ＲＡＩＤ装置３がＩＯ要求を受信し、ＩＯ要求に応じた処理を行なう。そして、ＲＡＩＤ装置３はＩＯ応答をＯＳ２２に送信し（処理Ａ３）、ＯＳ２２は受信したＩＯ応答をアプリケーション２１に出力し（処理Ａ４）、アプリケーション２１のアクセスが完了する。
【０１３２】
図７の例において、上述した第２条件における（Ｂ）−（Ｅ）の数値（時間差）、及び、（Ａ）−（Ｄ）の数値（時間差）は、それぞれ、「待ち時間」＋「ＨＢＡ−ＣＡ間の伝送時間」（往復）に相当する。
【０１３３】
「待ち時間」は、処理Ａ１の終点から、処理Ａ２の始点までの時間であるといえる。また、「ＨＢＡ−ＣＡ間の伝送時間」（往復）は、処理Ａ２の始点から終点までの時間、及び、処理Ａ３の始点から終点までの時間の合計であるといえる。
【０１３４】
ここで、「ＨＢＡ−ＣＡ間の伝送時間」は、「待ち時間」と比較して短時間であり、また、ホスト装置２のＣＰＵ２ａの使用率に関係なく（例えば、ホスト装置２の初期状態及び運用中に関係なく）ほぼ一定の値である。
【０１３５】
従って、（Ｂ）−（Ｅ）と（Ａ）−（Ｄ）との比較において、「ＨＢＡ−ＣＡ間の伝送時間」を定数として扱ってよく、（Ｂ）−（Ｅ）と（Ａ）−（Ｄ）との差は、「待ち時間」の差であると見做せる。
【０１３６】
例えば、図８に示すように、システム（例えばＯＳ２２）が起動し（処理Ｂ１）、ＯＳ２２のＩＯ性能測定部２４１がテストコマンドを生成する（処理Ｂ２）。テストコマンドはＩＯ処理部２５に出力され（処理Ｂ３）、ＩＯキュー２３に登録される。
【０１３７】
システムの起動後のように、ホスト装置２の「システムＣＰＵ時間」が増やせる（換言すれば、「アイドル時間」に空きがある）場合、ＩＯ処理部２５がＩＯ要求を受けてから（処理Ｂ３）ＩＯコマンドを送信する（処理Ｂ４）までの遅延時間（Ｘ）が短くなる。なお、図８の遅延時間（Ｘ）の例は、ＯＳ２２がテストコマンドを送信する場合を示すが、「アイドル時間」に空きがあれば、アプリケーション２１からＯＳ２２にＩＯ要求が入力される場合も同様である。
【０１３８】
一方、図８において、ホスト装置２の運用中に、アプリケーション２１がＩＯ要求をＩＯ処理部２５に出力し（処理Ｃ１）、ＩＯ要求がＩＯキュー２３に登録される。
【０１３９】
このように、ホスト装置２のＣＰＵ２ａの「アイドル時間」に空きがなくなりこれ以上「システムＣＰＵ時間」を増やせなくなると、ＩＯ処理部２５がＩＯ要求を受けてから（処理Ｃ１）ＩＯコマンドを送信する（処理Ｃ２）までの遅延時間（Ｙ）が発生する。遅延時間（Ｙ）は、少なくとも、ＩＯキュー２３のうちの最も古いコマンドを一つ処理する間の待ち時間であってよい。
【０１４０】
上記第２条件を図８の例に当てはめた場合、第２条件における（Ｂ）−（Ｅ）及び（Ａ）−（Ｄ）は、それぞれ、以下のように、（Ｙ）及び（Ｘ）に応じた値として表すことができる。なお、伝送時間（Ｔ１）〜（Ｔ４）は、いずれも差が小さいため、それぞれ（Ｔ）と見做してよい。
【０１４１】
（Ｂ）−（Ｅ）  ＝  （Ｙ）＋（Ｔ３）＋（Ｔ４）  ＝  （Ｙ）＋２（Ｔ）
（Ａ）−（Ｄ）  ＝  （Ｘ）＋（Ｔ１）＋（Ｔ２）  ＝  （Ｘ）＋２（Ｔ）
【０１４２】
ところで、上述のように、ホスト装置２のＣＰＵ２ａの性能限界に起因してシステム全体のＩＯ性能が飽和した状態（図２の（ｃ）及び図９参照）では、以下の制限がある。
【０１４３】
すなわち、アプリケーション２１からＲＡＩＤ装置３へのＩＯコマンド発行を依頼されたＯＳ２２が、ＩＯキュー２３の最も古い読み書きコマンドを処理するまでは、アプリケーション２１による、次の読み書きコマンドのＩＯキュー２３への登録が制限される。換言すれば、アプリケーション２１からＲＡＩＤ装置３へのＩＯコマンド発行を依頼されたＯＳ２２の、「システムＣＰＵ時間」の獲得待ちがシステム全体のＩＯのボトルネックとなる。
【０１４４】
この状態において、ＲＡＩＤ装置３からアプリケーション２１に対するＩＯ応答が遅延し、アプリケーション２１が次のＩＯ要求を送信するまでの時間を遅延したとしても、システム全体のＩＯ性能をこれ以上低下させることにはならない。
【０１４５】
そこで、第１実施形態では、システム全体のＩＯ性能が飽和した状態において、応答制御部３２５の応答制御により、ＲＡＩＤ装置３のＩＯレスポンスを遅延させる処理が実行される。
【０１４６】
この場合、図９に例示するように、ＲＡＩＤ装置３のＩＯレスポンスを遅延させることによってアプリケーション２１が次のＩＯコマンドを要求しなくなると、アプリケーション２１の使用する「ユーザＣＰＵ時間」が減少する。
【０１４７】
一方、この減少した「ユーザＣＰＵ時間」は「システムＣＰＵ時間」として割り当てることができるため、ＯＳ２２がＩＯキュー２３に滞留している読み書きコマンドを処理する速度を向上させることができる。
【０１４８】
このように、第１実施形態に係る情報処理システム１Ａでは、要求に対する応答を遅延させることにより、「遅延時間」を調節でき、これにより、「システムＣＰＵ時間」の割合を増加させ、ＩＯキュー２３に登録された要求の処理速度を向上できる。従って、ホスト装置２、ひいては情報処理システム１Ａの処理性能を向上できる。
【０１４９】
図１０は、時系列に沿ったシステム全体のＩＯ処理性能の一例を示す図である。図１０に示すように、ホスト装置２は、起動後にテストＩＯを発行するため、テストＩＯを発行しない場合と比較して、起動後にＩＯ性能が向上する。業務開始後、性能飽和に達すると、応答を遅延させない場合には、矢印ｘで示す性能値で頭打ちとなり、これ以上性能は向上しない。
【０１５０】
一方、応答を遅延させる場合、ＲＡＩＤ装置３の応答遅延開始（矢印ａ参照）から、ホスト装置２のＩＯキュー２３に空きができるようになるまで（矢印ｂ参照）の間、一時的にシステム全体のＩＯ性能が向上する。
【０１５１】
これにより、ホスト装置２、ひいては情報処理システム１Ａ全体のＩＯ性能の平均値が矢印ｙで示す性能値に向上する（ｘ⇒ｙ）。従って、情報処理システム１Ａの処理性能を向上できる。
【０１５２】
以上のように、第１実施形態に係る情報処理システム１Ａは、ホスト装置２及びＲＡＩＤ装置３の応答速度差が基準値よりも拡大したときに、ホスト装置２における送信処理が未完了なコマンドを意図的に増加させることができる。これにより、ＩＯキュー２３に滞留したコマンドの処理速度を向上させ、ボトルネック箇所であるＩＯキュー２３のＩＯ処理を動的に解消できる。従って、ＩＯキュー２３内のコマンド（例えば優先度の等価なコマンド）に係るＩＯ処理の平均性能を改善できる。
【０１５３】
〔３−２〕動作例
次に、図１１〜図１９を参照して、第１実施形態に係る情報処理システム１Ａの動作例を説明する。図１１及び図１２は、それぞれ、ホスト装置２及びＲＡＩＤ装置３の動作例を説明するフローチャートであり、図１３〜図１９は、それぞれ、ホスト装置２又はＲＡＩＤ装置３における各処理の動作例を説明する図である。なお、図１３〜図１９では、便宜上、第１実施形態に係るホスト側制御部２４Ａをホスト側制御部２４と表記し、第１実施形態に係るストレージ側制御部３２Ａをストレージ側制御部３２と表記している。
【０１５４】
〔３−２−１〕ホスト装置及びＲＡＩＤ装置の動作例
はじめに、第１実施形態に係るホスト装置２及びＲＡＩＤ装置３の各々の動作例について説明する。
【０１５５】
（ホスト装置２の動作例）
図１１に示すように、ホスト装置２のＯＳ２２が起動すると（ステップＳ１）、ホスト側制御部２４ＡのＩＯ性能測定部２４１は、「サンプリング応答時間（Ａ）」の測定を行ない（ステップＳ２）、測定した結果をメモリ部２４３に格納する。
【０１５６】
次いで、ＩＯ性能測定部２４１は、「現在の応答時間（Ｂ）」の測定を行ない（ステップＳ３）、測定した結果をメモリ部２４３に格納する。
【０１５７】
また、システム性能測定部２４２は、「ＣＰＵ使用率（Ｃ）」の測定を行ない（ステップＳ４）、測定した結果をメモリ部２４３に格納する。
【０１５８】
通信部２４４は、メモリ部２４３に格納された測定結果２４３ａを、管理回線４２を介してＲＡＩＤ装置３に送信する（ステップＳ５）。なお、通信部２４４は、測定結果２４３ａのうちの少なくとも最新の情報（例えば未送信の情報）をＲＡＩＤ装置３に送信すればよい。また、「サンプリング応答時間（Ａ）」については、ステップＳ２の後に送信されてもよい。さらに、「現在の応答時間（Ｂ）」及び「ＣＰＵ使用率（Ｃ）」は、それぞれ、測定の都度、別々に送信されてもよい。
【０１５９】
次いで、ホスト側制御部２４Ａは、一定時間が経過したか否かを判定し（ステップＳ６）、一定時間が経過していない場合（ステップＳ６でＮｏ）、一定時間が経過するまで待機する。一定時間が経過した場合（ステップＳ６でＹｅｓ）、処理がステップＳ３に移行する。
【０１６０】
（ＲＡＩＤ装置３の動作例）
図１２に示すように、ＲＡＩＤ装置３のＩＯ性能測定部３２２は、ホスト装置２からテストＩＯを受信すると（ステップＳ１１）、受信したテストＩＯに基づき「サンプリング応答時間（Ｄ）」の測定を行なう（ステップＳ１２）。なお、ＩＯ性能測定部３２２は、測定した結果をメモリ部３２３に格納する。
【０１６１】
次いで、ＩＯ性能測定部３２２は、「現在の応答時間（Ｅ）」の測定を行ない（ステップＳ１３）、測定した結果をメモリ部３２３に格納する。
【０１６２】
通信部２４４は、ホスト装置２から測定結果２４３ａを受信し（ステップＳ１４）、測定結果２４３ａをホスト側測定結果３２３ａとしてメモリ部３２３に格納する。
【０１６３】
判定部３２４は、ホスト側測定結果３２３ａに含まれる「ＣＰＵ使用率（Ｃ）」を参照し、ホスト装置２のＣＰＵ２ａの「アイドル時間」が０％か否かを判定する（ステップＳ１５）。「アイドル時間」が０％ではない場合（ステップＳ１５でＮｏ）、処理がステップＳ１８に移行する。
【０１６４】
一方、「アイドル時間」が０％の場合（ステップＳ１５でＹｅｓ）、判定部３２４は、ホスト側測定結果３２３ａ及び測定結果３２３ｂに含まれる各応答時間（Ａ）、（Ｂ）、（Ｄ）、及び（Ｅ）に基づいて、以下の判定を行なう（ステップＳ１６）。すなわち、判定部３２４は、（Ｂ）−（Ｅ）＞（Ａ）−（Ｄ）であるか否かを判定する。
【０１６５】
（Ｂ）−（Ｅ）＞（Ａ）−（Ｄ）である場合（ステップＳ１６でＹｅｓ）、判定部３２４は、応答制御部３２５に対して応答遅延処理の開始を指示する。応答制御部３２５は、判定部３２４からの指示に応じて、ホスト装置２からのＩＯについて、所定時間（ｘｘ［ｍｓ］）の応答遅延処理を実行し（ステップＳ１７）、処理がステップＳ１３に移行する。応答遅延処理では、例えば、ＩＯ処理・応答部３３の処理を所定時間遅延させる制御が行なわれてよい。
【０１６６】
一方、（Ｂ）−（Ｅ）＞（Ａ）−（Ｄ）ではない場合（ステップＳ１６でＮｏ）、判定部３２４は、応答制御部３２５に対して、応答遅延処理の停止を指示する。応答制御部３２５は、判定部３２４からの指示に応じて応答遅延処理を停止し（ステップＳ１８）、処理がステップＳ１３に移行する。
【０１６７】
ステップＳ１５及びＳ１６でＮｏとならない場合、ステップＳ１３〜Ｓ１７の処理が一定時間ごとに繰り返し実施される。これにより、（Ｃ）の「アイドル時間」＝０％、且つ、（Ｂ）−（Ｅ）＞（Ａ）−（Ｄ）が成立しなくなるまでの間、応答制御部３２５が、ステップＳ１７において遅延時間を累積させることで、（Ｂ）−（Ｅ）＝（Ａ）−（Ｄ）の状態に制御できる。
【０１６８】
〔３−２−２〕各処理の説明
次に、ホスト装置２及びＲＡＩＤ装置３の各々における各処理の動作例について説明する。
【０１６９】
（「サンプリング応答時間（Ａ）」の測定の動作例）
図１１のステップＳ２における「サンプリング応答時間（Ａ）」の測定の動作例を図１３に示す。ＩＯ性能測定部２４１は、例えばアプリケーション２１が処理を開始していないときに、ＯＳ２２、ＩＯ処理部２５のＩＯキュー２３、ＨＢＡ２ｃ−１を経由して、ＲＡＩＤ装置３に通信回線４１経由でテストＩＯを発行する（符号（１）〜（３）参照）。
【０１７０】
テストＩＯは、ＲＡＩＤ装置３のＣＡ３ｃ−１で受信され、メモリ３ｂに格納される。そして、テストＩＯは、ストレージ側制御部３２ＡのＩＯ処理・応答部３３によって記憶装置３ｄへのアクセス処理が行なわれる（符号（４）〜（７）参照）。また、ＩＯ処理・応答部３３により、ＩＯ処理・応答部３３の処理結果に基づき応答がメモリ３ｂ上に生成される。生成された応答は、ＣＡ３ｃ−１から送信され、ホスト装置２のＨＢＡ２ｃ−１を経由してＯＳ２２に通知される（符号（８）〜（１０）参照）。
【０１７１】
ここで、ＩＯ性能測定部２４１は、テストＩＯを発行してからＲＡＩＤ装置３が応答を返すまでの時間差を計測し、ホスト装置２の「サンプリング応答時間（Ａ）」としてメモリ部２４３に記録する。例えば、上述した符号（１）〜（６）（テストＩＯのリクエスト）と、符号（７）〜（１０）（テストＩＯのレスポンス）の合計時間が、「サンプリング応答時間（Ａ）」に相当する。
【０１７２】
なお、ＩＯキュー２３内の黒丸は、ＩＯキュー２３に滞留しているコマンドを表す。図１３の例では、ＩＯキュー２３には、他のコマンドが存在しないため、テストＩＯのＩＯキュー２３での待ち合わせは生じない。
【０１７３】
（「サンプリング応答時間（Ｄ）」の測定の動作例）
図１２のステップＳ１２における「サンプリング応答時間（Ｄ）」の測定の動作例を図１４に示す。ＲＡＩＤ装置３のＩＯ性能測定部３２２は、ホスト装置２のＩＯ性能測定部２４１が発行するテストＩＯのコマンドがＲＡＩＤ装置３のＣＡ３ｃ−１に入力されてから、ＣＡ３ｃ−１経由でＩＯ応答を返すまでの時間差を計測する。そして、ＩＯ性能測定部３２２は、計測した結果をＲＡＩＤ装置３での「サンプリング応答時間（Ｄ）」としてメモリ部３２３に記録する。
【０１７４】
例えば、図１４において、符号（１５）及び（１６）においてＣＡ３ｃ−１から入力されたテストＩＯのリクエストの時間と、符号（１７）及び（１８）におけるＩＯのレスポンスの時間との合計時間が、「サンプリング応答時間（Ｄ）」に相当する。なお、図１４に示す符号（１５）〜（１８）の経路は、図１３に示す符号（５）〜（８）の経路と同様である。
【０１７５】
なお、説明の便宜上、図１４を用いてＩＯ性能測定部３２２の動作を説明したが、ＩＯ性能測定部３２２は、ＩＯ性能測定部２４１による「サンプリング応答時間（Ａ）」の測定の過程で「サンプリング応答時間（Ｄ）」を測定してよい。換言すれば、ＩＯ性能測定部３２２は、図１３に示すようにホスト装置２のＩＯ性能測定部２４１がテストＩＯを発行したときに、符号（５）〜（８）の経路において「サンプリング応答時間（Ｄ）」を測定してよい。
【０１７６】
（「現在の応答時間（Ｂ）」の測定の動作例）
図１１のステップＳ３における「現在の応答時間（Ｂ）」の測定の動作例を図１５に示す。ＩＯ性能測定部２４１は、ＩＯ要求がアプリケーション２１からＩＯ処理部２５に入力されてから（符号（２１）参照）、ＲＡＩＤ装置３が応答を返すまでの時間差を計測し、「現在の応答時間（Ｂ）」としてメモリ部２４３に記録する。
【０１７７】
なお、図１５において、ＲＡＩＤ装置３から受信した応答は、ホスト装置２のＨＢＡ２ｃ−１からＯＳ２２を経由してアプリケーション２１に渡される（符号（３０）参照）。図１５に示す符号（２２）〜（２９）の経路は、図１３に示す符号（２）〜（９）の経路と同様である。
【０１７８】
例えば、図１５において、ＩＯのリクエストと、ＩＯのレスポンスとの合計時間が、「現在の応答時間（Ｂ）」に相当する。なお、ＩＯのリクエストの時間は、符号（２１）でＩＯ処理部２５がＩＯ要求を受け取ってから符号（２６）でＩＯ要求が処理されるまでの時間であってよい。また、ＩＯのレスポンスの時間は、符号（２７）で処理が完了してから、符号（３０）でＩＯ処理部２５がＩＯ応答を受け取るまでの時間であってよい。
【０１７９】
なお、図１５の例では、ホスト装置２は業務運用を開始しているため、ＩＯキュー２３には他のコマンドが存在し、ＩＯ要求のＩＯキュー２３での待ち合わせが発生する。換言すれば、「現在の応答時間（Ｂ）」は、「サンプリング応答時間（Ａ）」＋「ＩＯキュー２３での待ち合わせ時間」である。
【０１８０】
（「現在の応答時間（Ｅ）」の測定の動作例）
図１２のステップＳ１３における「現在の応答時間（Ｅ）」の測定の動作例を図１６に示す。ＲＡＩＤ装置３のＩＯ性能測定部３２２は、テストＩＯ以外のＩＯコマンドがＲＡＩＤ装置３のＣＡ３ｃ−１に入力されてから、ＣＡ３ｃ−１経由でＩＯ応答を返すまでの時間差を計測し、「現在の応答時間（Ｅ）」としてメモリ部３２３に記録する。
【０１８１】
例えば、図１６において、符号（３５）及び（３６）におけるＣＡ３ｃ−１から入力されたＩＯのリクエストの時間と、符号（３７）及び（３８）におけるＩＯのレスポンスの時間との合計時間が、「現在の応答時間（Ｅ）」に相当する。なお、図１６に示す符号（３５）〜（３８）の経路は、図１５に示す符号（２５）〜（２８）の経路と同様である。
【０１８２】
上述のように、情報処理システム１Ａでは、ホスト装置２の業務開始前と業務開始後とでＩＯ負荷の変化が生じ、（Ｄ）の値と（Ｅ）の値とが異なる場合がある。従って、「サンプリング応答時間（Ｄ）」と、「現在の応答時間（Ｅ）」とは、異なるタイミングで別個に測定されてよい。
【０１８３】
なお、説明の便宜上、図１６を用いてＩＯ性能測定部３２２の動作を説明したが、ＩＯ性能測定部３２２は、ＩＯ性能測定部２４１による「現在の応答時間（Ｂ）」の測定の過程で「現在の応答時間（Ｅ）」を測定してもよい。換言すれば、ＩＯ性能測定部３２２は、図１５に示すようにホスト装置２がＩＯを発行したときに、符号（２５）〜（２８）の経路において「現在の応答時間（Ｅ）」を測定してもよい。
【０１８４】
（「ＣＰＵ使用率（Ｃ）」の測定の動作例）
図１１のステップＳ４における「ＣＰＵ使用率（Ｃ）」の測定の動作例を図１７に示す。システム性能測定部２４２は、一定時間ごとのホスト装置２のＣＰＵ２ａの「ユーザＣＰＵ時間」、「システムＣＰＵ時間」、及び「アイドル時間」を計測し（符号（４１）参照）、ホスト装置２の「ＣＰＵ使用率（Ｃ）」としてメモリ部２４３に記録する。
【０１８５】
（測定結果２４３ａの通知の動作例）
図１１のステップＳ５及び図１２のステップＳ１４における、ホスト装置２からＲＡＩＤ装置３への測定結果２４３ａの通知の動作例を図１８に示す。ホスト装置２の通信部２４４は、管理回線４２を介して、ＲＡＩＤ装置３のストレージ側制御部３２Ａに対して、測定結果２４３ａを通知する（符号（５１）参照）。
【０１８６】
測定結果２４３ａにおける「サンプリング応答時間（Ａ）」の通知は、ホスト装置２のＯＳ２２の起動後に、例えば１度だけ行なわれてよい。測定結果２４３ａにおける「現在の応答時間（Ｂ）」及び「ＣＰＵ使用率（Ｃ）」の通知は、一定時間ごとに行なわれてよい。なお、ＲＡＩＤ装置３の通信部３２１は、受信した測定結果２４３ａをホスト側測定結果３２３ａとしてメモリ部３２３に格納する。
【０１８７】
（応答遅延処理の動作例）
図１２のステップＳ１５〜Ｓ１８における応答遅延処理の動作例を図１９に示す。判定部３２４が、ホスト側測定結果３２３ａ及び測定結果３２３ｂに基づきシステム全体のＩＯ性能が飽和した状態に陥ったと判断すると、応答制御部３２５に対して応答遅延処理の開始を指示する。また、判定部３２４が、システム全体のＩＯ性能の飽和が解消したと判断すると、応答制御部３２５に対して応答遅延処理の停止を指示する。
【０１８８】
なお、図１９に示す符号（６１）〜（７０）の経路は、図１５に示す符号（２１）〜（３０）の経路と同様である。
【０１８９】
応答制御部３２５は、判定部３２４からの指示に応じて、ＩＯ処理・応答部３３に対して、ホスト装置２のＯＳ２２が発行した読み書きのコマンドの応答を一定時間遅延させる、又は、遅延を停止（例えば解除）させてよい。なお、応答遅延処理の対象となる、ＩＯ処理・応答部３３の処理は、例えば、符号（６７）でのＩＯ要求の処理から、符号（６９）でのＣＡ３ｃ−１からのＩＯ応答の送信までにおける少なくとも１つの処理であってよい。
【０１９０】
〔４〕第２実施形態
第１実施形態では、ＲＡＩＤ装置３のストレージ側制御部３２Ａが、ホスト装置２での測定結果２４３ａ及びＲＡＩＤ装置３での測定結果３２３ｂに基づいて、応答制御の実施の要否を判定するものとして説明したが、これに限定されるものではない。以下、応答制御の実施の要否をホスト装置２が判定する場合について説明する。
【０１９１】
〔４−１〕機能構成例
図２０は、第２実施形態に係る情報処理システム１Ｂの機能構成例を示すブロック図である。情報処理システム１Ｂは、図３に示す情報処理システム１の一例である。なお、以下の説明において、既述の符号と同一の符号の構成は、既述の構成と同様であってよい。
【０１９２】
図２０に示すように、情報処理システム１Ｂにおいて、ホスト装置２のＯＳ２２は、機能構成として、ホスト側制御部２４Ｂ及びＩＯ処理部２５をそなえてよい。
【０１９３】
ホスト側制御部２４Ｂは、図３に示すホスト側制御部２４の一例である。図２０に示すように、ホスト側制御部２４Ｂは、図５に示すホスト側制御部２４Ａと比較して、通信部２４４に代えて、判定部２４５及び通信部２４６をそなえてよい。また、メモリ部２４３は、測定結果２４３ａに加えて、ストレージ側測定結果２４３ｂを格納可能であってよい。
【０１９４】
通信部２４６は、ＲＡＩＤ装置３との間で管理情報の通信を行なう。例えば、通信部２４６は、ＲＡＩＤ装置３のメモリ部３２３に格納された測定結果３２３ｂの少なくとも一部の情報を、ＲＡＩＤ装置３の通信部３２６（図２０参照）から受信し、受信した情報をストレージ側測定結果２４３ｂとしてメモリ部２４３に格納してよい。
【０１９５】
なお、通信部２４６は、管理回線４２を介してＲＡＩＤ装置３との間で情報を伝送してよい。通信部２４６は、ＨＢＡ２ｃ−１及びＣＰＵ２ａの少なくとも一部により実現されてよい。
【０１９６】
判定部２４５は、第１実施形態に係るＲＡＩＤ装置３の判定部３２４と同様の機能をそなえてよい。
【０１９７】
例えば、判定部２４５は、メモリ部２４３に格納された測定結果２４３ａ及びストレージ側測定結果２４３ｂの情報に基づいて、システムのＩＯ性能の評価を行なう。一例として、判定部２４５は、第１及び第２条件の双方が満たされる場合に、ホスト装置２のＣＰＵ２ａの性能限界に起因してシステム全体のＩＯ性能が飽和した状態、換言すればＲＡＩＤ装置３の性能を活かせていない状態に陥ったと判断してよい。なお、第１及び第２条件は、いずれも第１実施形態において説明したものと同様であってよい。
【０１９８】
判定部２４５は、第１及び第２条件が満たされると判定した場合、ＲＡＩＤ装置３の応答制御部３２５に対して、ホスト装置２への応答制御の実施を指示してよい。判定部２４５から応答制御部３２５への指示は、例えば通信部２４６から管理回線４２を介してＲＡＩＤ装置３に送信されてよい。
【０１９９】
判定部２４５の判定は、一定時間ごと、例えばＲＡＩＤ装置３の通信部３２６からＲＡＩＤ装置３での測定結果３２３ｂを受信するごとに、受信した測定結果３２３ｂと測定結果２４３ａとを用いて実施されてよい。
【０２００】
なお、判定部２４５及び応答制御部３２５による制御によって、例えば、第２条件が（Ｂ）−（Ｅ）＝（Ａ）−（Ｄ）の状態になった場合、判定部２４５は、応答制御部３２５に対して、応答の遅延制御の停止を指示してよい。この指示には、例えば遅延制御をキャンセルすることの指示が含まれてよい。
【０２０１】
以上のように、判定部２４５は、送信処理に起因したアクセス要求の送信遅延に関する指標に基づいて、ＲＡＩＤ装置３からホスト装置２への応答の送信タイミングの制御を実施するか否かを判定するといえる。また、判定部２４５は、測定結果２４３ａ及びストレージ側測定結果２４３ｂを用いた判定に基づいて、ＲＡＩＤ装置３に対して応答の送信タイミングの制御を要求する制御要求部の一例である。
【０２０２】
ストレージ側制御部３２Ｂは、図３に示すストレージ側制御部３２の一例である。図２０に示すように、ストレージ側制御部３２Ｂは、図５に示すストレージ側制御部３２Ａと比較して、通信部３２１及び判定部３２４に代えて、通信部３２６をそなえてよい。また、メモリ部３２３は、ホスト側測定結果３２３ａを格納しなくてよい。
【０２０３】
通信部３２６は、ホスト装置２との間で管理情報の通信を行なう。例えば、通信部３２６は、ホスト装置２に対して、メモリ部３２３に格納された測定結果３２３ｂの少なくとも一部の情報を送信してよい。
【０２０４】
例えば、通信部３２６は、図２１に例示するように、測定結果３２３ｂのうちの「サンプリング応答時間（Ｄ）」を、システム（例えばＯＳ２２）起動後、換言すればＩＯ性能測定部３２２による測定後に、ホスト装置２に送信してよい。また、通信部３２６は、「現在の応答時間（Ｅ）」を、一定時間ごと、換言すれば、ＩＯ性能測定部３２２による測定の後、ホスト装置２に送信してよい。一定時間は、ユーザが任意で設定してよい。
【０２０５】
換言すれば、通信部３２６は、測定した第２の時間をホスト装置２に通知する通知部の一例である。
【０２０６】
第２実施形態に係る情報処理システム１Ｂにおいて、ＲＡＩＤ装置３の応答制御部３２５は、ホスト装置２の判定部２４５からの制御指示に応じて、第１実施形態と同様の応答遅延処理を行なってよい。
【０２０７】
第２実施形態に係る情報処理システム１Ｂによっても、第１実施形態と同様の効果を奏することができる。
【０２０８】
また、情報処理システム１Ｂでは、ホスト装置２の判定部２４５が判定を行なう。従って、システム全体の処理性能が飽和した状態であることをホスト装置２で認識できるため、例えば、処理性能が飽和した状態であることをアプリケーション２１又はアプリケーション２１のユーザに通知したり、ログとして記録する等の対応が可能となる。これにより、判定部２４５による判定結果をホスト装置２における運用形態の改善等に容易に用いることができ、処理性能の改善を図ることができる。
【０２０９】
〔４−２〕動作例
次に、図２２〜図２６を参照して、第２実施形態に係る情報処理システム１Ｂの動作例を説明する。図２２はホスト装置２の動作例を説明するフローチャートであり、図２３及び図２４はＲＡＩＤ装置３の動作例を説明するフローチャートである。図２５及び図２６は、それぞれ、ホスト装置２又はＲＡＩＤ装置３における各処理の動作例を説明する図である。
【０２１０】
〔４−２−１〕ホスト装置及びＲＡＩＤ装置の動作例
はじめに、第２実施形態に係るホスト装置２及びＲＡＩＤ装置３の各々の動作例について説明する。
【０２１１】
（ホスト装置２の動作例）
図２２に示すように、ホスト装置２のＯＳ２２が起動すると（ステップＳ２１）、ホスト側制御部２４ＢのＩＯ性能測定部２４１は、「サンプリング応答時間（Ａ）」の測定を行ない（ステップＳ２２）、測定した結果をメモリ部２４３に格納する。
【０２１２】
次いで、ＩＯ性能測定部２４１は、「現在の応答時間（Ｂ）」の測定を行ない（ステップＳ２３）、測定した結果をメモリ部２４３に格納する。
【０２１３】
また、システム性能測定部２４２は、「ＣＰＵ使用率（Ｃ）」の測定を行ない（ステップＳ２４）、測定した結果をメモリ部２４３に格納する。
【０２１４】
通信部２４６は、ＲＡＩＤ装置３から測定結果３２３ｂを受信し（ステップＳ２５）、測定結果３２３ｂをストレージ側測定結果２４３ｂとしてメモリ部２４３に格納する。
【０２１５】
判定部２４５は、測定結果２４３ａに含まれる「ＣＰＵ使用率（Ｃ）」を参照し、ホスト装置２のＣＰＵ２ａの「アイドル時間」が０％か否かを判定する（ステップＳ２６）。「アイドル時間」が０％ではない場合（ステップＳ２６でＮｏ）、処理がステップＳ２９に移行する。
【０２１６】
一方、「アイドル時間」が０％の場合（ステップＳ２６でＹｅｓ）、判定部２４５は、測定結果２４３ａ及びストレージ側測定結果２４３ｂに含まれる各応答時間（Ａ）、（Ｂ）、（Ｄ）、及び（Ｅ）に基づいて、以下の判定を行なう（ステップＳ２７）。すなわち、判定部２４５は、（Ｂ）−（Ｅ）＞（Ａ）−（Ｄ）であるか否かを判定する。
【０２１７】
（Ｂ）−（Ｅ）＞（Ａ）−（Ｄ）である場合（ステップＳ２７でＹｅｓ）、判定部２４５は、ＲＡＩＤ装置３の応答制御部３２５に対して、応答遅延処理の開始指示を送信し（ステップＳ２８）、処理がステップＳ２３に移行する。
【０２１８】
一方、（Ｂ）−（Ｅ）＞（Ａ）−（Ｄ）ではない場合（ステップＳ２７でＮｏ）、判定部２４５は、ＲＡＩＤ装置３の応答制御部３２５に対して、応答遅延処理の停止指示を送信し（ステップＳ２９）、処理がステップＳ２３に移行する。
【０２１９】
（ＲＡＩＤ装置３の動作例）
図２３に示すように、ＲＡＩＤ装置３のＩＯ性能測定部３２２は、ホスト装置２からテストＩＯを受信すると（ステップＳ３１）、受信したテストＩＯに基づき「サンプリング応答時間（Ｄ）」の測定を行なう（ステップＳ３２）。なお、ＩＯ性能測定部３２２は、測定した結果をメモリ部３２３に格納する。
【０２２０】
次いで、ＩＯ性能測定部３２２は、「現在の応答時間（Ｅ）」の測定を行ない（ステップＳ３３）、測定した結果をメモリ部３２３に格納する。
【０２２１】
通信部３２６は、メモリ部３２３に格納された測定結果３２３ｂを、管理回線４２を介してホスト装置２に送信する（ステップＳ３４）。なお、通信部３２６は、測定結果３２３ｂのうちの少なくとも最新の情報（例えば未送信の情報）をホスト装置２に送信すればよい。また、「サンプリング応答時間（Ｄ）」については、ステップＳ３２の後に送信されてもよい。
【０２２２】
次いで、ストレージ側制御部３２Ｂは、一定時間が経過したか否かを判定し（ステップＳ３５）、一定時間が経過していない場合（ステップＳ３５でＮｏ）、一定時間が経過するまで待機する。一定時間が経過した場合（ステップＳ３５でＹｅｓ）、処理がステップＳ３３に移行する。
【０２２３】
また、ストレージ側制御部３２Ｂでは、例えばＲＡＩＤ装置３の起動後、応答遅延処理を行なう応答制御が開始されてよい。応答制御では、図２４に例示する処理が行なわれてよい。
【０２２４】
応答制御部３２５は、ホスト装置２から応答制御の指示を待ち受ける（ステップＳ４１）。応答遅延処理の開始指示又は停止指示を受信すると（ステップＳ４２）、応答制御部３２５は、受信した指示が開始指示であるか否かを判定する（ステップＳ４３）。なお、開始指示又は停止指示は、管理回線４２を介して通信部３２６が受信してよい。
【０２２５】
開始指示を受信した場合（ステップＳ４３でＹｅｓ）、応答制御部３２５は、判定部２４５からの開始指示に応じて、ホスト装置２からのＩＯについて、所定時間（ｘｘ［ｍｓ］）の応答遅延処理を実行し（ステップＳ４４）、処理がステップＳ４１に移行する。応答遅延処理では、例えば、ＩＯ処理・応答部３３の処理を所定時間遅延させる制御が行なわれてよい。
【０２２６】
一方、停止指示を受信した場合（ステップＳ４３でＮｏ）、応答制御部３２５は、判定部２４５からの指示に応じて応答遅延処理を停止（例えば解除）し（ステップＳ４５）、処理がステップＳ４１に移行する。
【０２２７】
以上のように、図２２のステップＳ２６及びＳ２７でＮｏとならない場合、ステップＳ２３〜Ｓ２８の処理が一定時間ごとに繰り返し実施される。これにより、（Ｃ）の「アイドル時間」＝０％、且つ、（Ｂ）−（Ｅ）＞（Ａ）−（Ｄ）が成立しなくなるまでの間、判定部２４５は、応答制御部３２５に対して、応答遅延処理の開始指示を送信する。
【０２２８】
応答制御部３２５は、図２４のステップＳ４２で開始指示を受信する都度、ステップＳ４４でホスト装置２からのＩＯについて遅延時間を累積させることで、（Ｂ）−（Ｅ）＝（Ａ）−（Ｄ）の状態に制御できる。
【０２２９】
〔４−２−２〕各処理の説明
次に、ホスト装置２及びＲＡＩＤ装置３の各々における各処理の動作例について説明する。なお、ホスト装置２での測定結果２４３ａの取得、及び、ＲＡＩＤ装置３での測定結果３２３ｂの取得に係る動作例は、第１実施形態と同様である。すなわち、「サンプリング応答時間（Ａ）及び（Ｄ）」、「現在の応答時間（Ｂ）及び（Ｅ）」、並びに、「ＣＰＵ使用率（Ｃ）」の測定の動作例は、図１３〜図１７に例示する動作に従って実施されてよい。
【０２３０】
（測定結果３２３ｂの通知の動作例）
図２２のステップＳ２５及び図２３のステップＳ３４における、ＲＡＩＤ装置３からホスト装置２への測定結果３２３ｂの通知の動作例を図２５に示す。ＲＡＩＤ装置３の通信部３２６は、管理回線４２を介して、ホスト装置２のホスト側制御部２４Ｂに対して、測定結果３２３ｂを通知する（符号（７１）参照）。
【０２３１】
測定結果３２３ｂにおける「サンプリング応答時間（Ｄ）」の通知は、ホスト装置２のＯＳ２２の起動後に、例えば１度だけ行なわれてよい。測定結果３２３ｂにおける「現在の応答時間（Ｅ）」の通知は、一定時間ごとに行なわれてよい。なお、ホスト装置２の通信部２４６は、受信した測定結果３２３ｂをストレージ側測定結果２４３ｂとしてメモリ部２４３に格納する。
【０２３２】
（応答遅延処理の動作例）
図２２のステップＳ２６〜Ｓ２９及び図２４のステップＳ４１〜Ｓ４５における応答遅延処理の動作例を図２６に示す。ホスト装置２の判定部２４５は、測定結果２４３ａ及びストレージ側測定結果２４３ｂに基づきシステム全体のＩＯ性能が飽和した状態に陥ったと判断すると、ＲＡＩＤ装置３の応答制御部３２５に対して応答遅延処理の開始指示を送信する（符号（８１）参照）。また、判定部２４５は、システム全体のＩＯ性能の飽和が解消したと判断すると、応答制御部３２５に対して応答遅延処理の停止を指示する（符号（８１）参照）。
【０２３３】
なお、図２６に示す符号（９１）〜（１００）の経路は、図１５に示す符号（２１）〜（３０）の経路と同様である。
【０２３４】
応答制御部３２５は、判定部２４５からの指示に応じて、ＩＯ処理・応答部３３に対して、ホスト装置２のＯＳ２２が発行した読み書きのコマンドの応答を一定時間遅延させる、又は、遅延を停止（例えば解除）させてよい。なお、応答遅延処理の対象となる、ＩＯ処理・応答部３３の処理は、例えば、符号（９７）でのＩＯ要求の処理から、符号（９９）でのＣＡ３ｃ−１からのＩＯ応答の送信までにおける少なくとも１つの処理であってよい。
【０２３５】
〔５〕その他
上述した各実施形態に係る技術は、以下のように変形、変更して実施することができる。
【０２３６】
例えば、図５又は図２０に示す情報処理システム１Ａ又は１Ｂの各機能ブロックは、それぞれ任意の組み合わせで併合してもよく、分割してもよい。
【０２３７】
また、各実施形態においては、１つのアプリケーション２１からＲＡＩＤ装置３に対するＩＯ要求がＯＳ２２に出力されるものとして説明したが、これに限定されるものではない。例えば、複数のアプリケーション２１が、ＲＡＩＤ装置３に対するＩＯ要求をＯＳ２２に出力してもよい。
【０２３８】
この場合、複数のアプリケーション２１の各々が用いる「ユーザＣＰＵ時間」の合計が、図２に例示する「ユーザＣＰＵ時間」となる。従って、ホスト側制御部２４は、ＩＯ要求を出力するアプリケーション２１の数に関わらず、同様の制御を行なってよい。
【０２３９】
なお、各々のアプリケーション２１からのＩＯ要求は、アプリケーション２１ごとにＯＳ２２が管理するＯＳキュー（図示省略）に一度格納され、ＯＳキューから順にＩＯキュー２３に格納されて、ＩＯキュー２３からＲＡＩＤ装置３に発行される。従って、ストレージ側制御部３２についても、ＩＯ要求を出力するアプリケーション２１の数に関わらず、同様の制御を行なってよい。
【０２４０】
さらに、各実施形態においては、情報処理システム１、１Ａ、又は１Ｂに、ホスト装置２が１つ存在する場合について説明したが、これに限定されるものではなく、複数のホスト装置２が情報処理システム１、１Ａ、又は１Ｂに存在してもよい。
【０２４１】
この場合、複数のホスト装置２の各々が、ホスト側制御部２４Ａ又は２４Ｂをそなえてよい。また、ホスト装置２は、互いに、異なるホスト側制御部２４Ａ又は２４Ｂをそなえてもよく、ＲＡＩＤ装置３は、ホスト装置２ごとに（或いはホスト側制御部２４Ａ又は２４Ｂごとに）、ストレージ側制御部３２Ａ又は３２Ｂをそなえてもよい。
【０２４２】
複数のホスト装置２が存在する場合、ＲＡＩＤ装置３の応答制御部３２５による応答遅延処理は、ホスト装置２ごとに実施されることが好ましい。従って、ストレージ側制御部３２Ｂは、ホスト装置２ごとに、ホスト側測定結果３２３ａ及び／又は測定結果３２３ｂを取得及び管理し、ホスト装置２ごとに、当該ホスト装置２からのＩＯに対する応答制御を行なってよい。
【０２４３】
なお、ＲＡＩＤ装置３には、ホスト装置２がそれぞれ異なるポートに接続される。従って、ＲＡＩＤ装置３は、例えばＦＣ層の固有名等によって、ＩＯ要求の送信元のホスト装置２を特定できる。
【０２４４】
また、各実施形態においては、情報処理システム１、１Ａ、又は１Ｂに、ＲＡＩＤ装置３が１つ存在する場合について説明したが、これに限定されるものではなく、複数のＲＡＩＤ装置３が情報処理システム１、１Ａ、又は１Ｂに存在してもよい。
【０２４５】
〔６〕付記
以上の各実施形態に関し、更に以下の付記を開示する。
【０２４６】
（付記１）
ストレージ装置へのアクセス要求を送信するための送信処理を実行する情報処理装置と、
前記送信処理により送信されたアクセス要求に応じた処理を行ない、前記情報処理装置に応答を送信する前記ストレージ装置と、をそなえ、
前記情報処理装置又は前記ストレージ装置は、
前記送信処理に起因したアクセス要求の送信遅延に関する指標に基づいて、前記情報処理装置への応答の送信タイミングの制御を実施するか否かを判定する判定部、をそなえ、
前記ストレージ装置は、
前記判定部による判定結果に基づいて、前記情報処理装置への応答の送信タイミングを制御する制御部、をそなえる、
ことを特徴とする、情報処理システム。
【０２４７】
（付記２）
前記送信処理は、前記アクセス要求を送信キューに入力し、前記送信キューから所定の順序で前記アクセス要求を前記ストレージ装置に送信する処理を含み、
前記送信遅延に関する指標は、前記アクセス要求が前記送信キューに滞在する時間に関する第１の情報を含む、
ことを特徴とする、付記１記載の情報処理システム。
【０２４８】
（付記３）
前記第１の情報は、
前記情報処理装置で測定された、前記送信処理を開始してから、前記ストレージ装置から応答を受信するまでの第１の時間と、
前記ストレージ装置で測定された、前記情報処理装置からアクセス要求を受信してから、前記情報処理装置に応答を送信するまでの第２の時間と、を含む、
ことを特徴とする、付記２記載の情報処理システム。
【０２４９】
（付記４）
前記判定部は、前記第１の時間と前記第２の時間との時間差と、前記時間差の基準値との比較を行ない、比較結果に基づいて、前記送信タイミングの制御を実施するか否かを判定する、
ことを特徴とする、付記３記載の情報処理システム。
【０２５０】
（付記５）
前記送信遅延に関する指標は、前記情報処理装置で測定された、前記情報処理装置のプロセッサが前記送信処理に割当可能な処理能力に関する第２の情報を含む、
ことを特徴とする、付記２〜４のいずれか１項記載の情報処理システム。
【０２５１】
（付記６）
前記判定部は、前記第２の情報を用いて、前記プロセッサが前記送信処理に割当可能な処理能力を有しているか否かを判定する、
ことを特徴とする、付記５記載の情報処理システム。
【０２５２】
（付記７）
前記送信タイミングの制御は、前記ストレージ装置における、前記アクセス要求に応じた処理、応答の生成処理、及び、生成した応答を前記情報処理装置に送信する処理、のうちの少なくとも１つの処理を遅延させる制御を含む、
ことを特徴とする、付記１〜６のいずれか１項記載の情報処理システム。
【０２５３】
（付記８）
ストレージ装置に対してアクセス要求を送信するための送信処理を実行する送信処理部と、
前記送信処理に起因したアクセス要求の送信遅延に関する指標に基づいて、前記ストレージ装置から前記情報処理装置への応答の送信タイミングの制御を実施するか否かを判定する判定部と、をそなえる、
ことを特徴とする、情報処理装置。
【０２５４】
（付記９）
送信キューをそなえ、
前記送信処理部は、前記送信処理において、前記アクセス要求を前記送信キューに入力し、前記送信キューから所定の順序で前記アクセス要求を前記ストレージ装置に送信し、
前記送信遅延に関する指標は、前記アクセス要求が前記送信キューに滞在する時間に関する第１の情報を含む、
ことを特徴とする、付記８記載の情報処理装置。
【０２５５】
（付記１０）
前記第１の情報は、
前記情報処理装置で測定された、前記送信処理を開始してから、前記ストレージ装置から応答を受信するまでの第１の時間と、
前記ストレージ装置で測定された、前記情報処理装置からアクセス要求を受信してから、前記情報処理装置に応答を送信するまでの第２の時間と、を含む、
ことを特徴とする、付記９記載の情報処理装置。
【０２５６】
（付記１１）
前記判定部は、測定した前記第１の時間と前記ストレージ装置から取得した前記第２の時間との時間差と、前記時間差の基準値との比較を行ない、比較結果に基づいて、前記送信タイミングの制御を実施するか否かを判定する、
ことを特徴とする、付記１０記載の情報処理装置。
【０２５７】
（付記１２）
前記送信遅延に関する指標は、前記情報処理装置で測定された、前記情報処理装置のプロセッサが前記送信処理に割当可能な処理能力に関する第２の情報を含む、
ことを特徴とする、付記９〜１１のいずれか１項記載の情報処理装置。
【０２５８】
（付記１３）
前記判定部は、測定した前記第２の情報を用いて、前記プロセッサが前記送信処理に割当可能な処理能力を有しているか否かを判定し、
前記判定部の判定結果に基づいて、前記ストレージ装置に対して応答の送信タイミングの制御を要求する制御要求部、をそなえる、
ことを特徴とする、付記１２記載の情報処理装置。
【０２５９】
（付記１４）
情報処理装置から送信処理により送信されたアクセス要求に応じて処理を行ない、前記情報処理装置に応答を送信する応答処理部と、
前記送信処理に起因したアクセス要求の送信遅延に関する指標に基づいて、前記情報処理装置への応答の送信タイミングを制御する応答制御部と、をそなえる、
ことを特徴とする、ストレージ装置。
【０２６０】
（付記１５）
前記送信処理は、前記アクセス要求を送信キューに入力し、前記送信キューから所定の順序で前記アクセス要求を前記ストレージ装置に送信する処理を含み、
前記送信遅延に関する指標は、前記アクセス要求が前記送信キューに滞在する時間に関する第１の情報を含む、
ことを特徴とする、付記１４記載のストレージ装置。
【０２６１】
（付記１６）
前記第１の情報は、
前記情報処理装置で測定された、前記送信処理を開始してから、前記ストレージ装置から応答を受信するまでの第１の時間と、
前記ストレージ装置で測定された、前記情報処理装置からアクセス要求を受信してから、前記情報処理装置に応答を送信するまでの第２の時間と、を含む、
ことを特徴とする、付記１５記載のストレージ装置。
【０２６２】
（付記１７）
前記応答制御部は、前記情報処理装置から取得した前記第１の時間と測定した前記第２の時間との時間差と、前記時間差の基準値との比較を行ない、比較結果に基づいて、前記送信タイミングを制御する、
ことを特徴とする、付記１６記載のストレージ装置。
【０２６３】
（付記１８）
前記送信遅延に関する指標は、前記情報処理装置で測定された、前記情報処理装置のプロセッサが前記送信処理に割当可能な処理能力に関する第２の情報を含む、
ことを特徴とする、付記１５〜１７のいずれか１項記載のストレージ装置。
【０２６４】
（付記１９）
前記応答制御部は、前記情報処理装置から取得した前記第２の情報を用いて、前記プロセッサが前記送信処理に割当可能な処理能力を有しているか否かを判定し、判定結果に基づいて、前記送信タイミングを制御する、
ことを特徴とする、付記１８記載のストレージ装置。
【０２６５】
（付記２０）
前記送信タイミングの制御は、前記応答処理部における、前記アクセス要求に応じた処理、応答の生成処理、及び、生成した応答を前記情報処理装置に送信する処理、のうちの少なくとも１つの処理を遅延させる制御を含む、
ことを特徴とする、付記１４〜１９のいずれか１項記載のストレージ装置。
【符号の説明】
【０２６６】
１、１Ａ、１Ｂ    情報処理システム
２    ホスト装置
２１    アプリケーション
２２    ＯＳ
２３    ＩＯキュー
２４、２４Ａ、２４Ｂ    ホスト側制御部
２４１、３２２    ＩＯ性能測定部
２４２    システム性能測定部
２４３、３２３    メモリ部
２４３ａ、３２３ｂ    測定結果
２４３ｂ    ストレージ側測定結果
２４４、２４６、３２１、３２６    通信部
２４５、３２４    判定部
２５    ＩＯ処理部
３    ＲＡＩＤ装置
３１    ファームウェア
３２、３２Ａ、３２Ｂ    ストレージ側制御部
３２３ａ    ホスト側測定結果
３２５    応答制御部
３３    ＩＯ処理・応答部
４１    通信回線
４２    管理回線
【図１】
2017228180.tif 000003
【図２】
2017228180.tif 000004
【図３】
2017228180.tif 000005
【図４】
2017228180.tif 000006
【図５】
2017228180.tif 000007
【図６】
2017228180.tif 000008
【図７】
2017228180.tif 000009
【図８】
2017228180.tif 000010
【図９】
2017228180.tif 000011
【図１０】
2017228180.tif 000012
【図１１】
2017228180.tif 000013
【図１２】
2017228180.tif 000014
【図１３】
2017228180.tif 000015
【図１４】
2017228180.tif 000016
【図１５】
2017228180.tif 000017
【図１６】
2017228180.tif 000018
【図１７】
2017228180.tif 000019
【図１８】
2017228180.tif 000020
【図１９】
2017228180.tif 000021
【図２０】
2017228180.tif 000022
【図２１】
2017228180.tif 000023
【図２２】
2017228180.tif 000024
【図２３】
2017228180.tif 000025
【図２４】
2017228180.tif 000026
【図２５】
2017228180.tif 000027
【図２６】
2017228180.tif 000028