"デバイスアダプタを介して、データをキャッシュ及び不揮発性ストレージNVSから複数のストレージデバイスの各々にデステージする方法であって、前記ストレージデバイスの各々に関連した前記NVSの現在のストレージ占有率に応じて、キャッシュからのデータのデステージ速度を適応変化させるステップと、前記ストレージデバイスに関連した現在のステージアクティビティに応じて前記デステージ速度を適応調整するステップであって、前記調整されたデステージ速度は、ステージアクティビティが低い場合には相対的に高くなり、ステージアクティビティが高い場合には相対的に低くなる、ステップと、データを前記調整されたデステージ速度でキャッシュから前記ストレージデバイスにデステージし、前記NVSから前記デステージされたデータを破棄するステップと、を含む方法。前記デステージ速度は、各々の前記ストレージデバイスに関連した前記NVSのデバイス占有率が前記NVSの最大デバイス占有率を上回らないという制約を条件として、前記NVSの所望の合計占有率を維持するように適応変化され、全ての前記ストレージデバイスへの、前記NVS内の使用可能スペースの合計最大割り当ては、前記NVS内の使用可能スペースの100パーセントを上回る、請求項1に記載の方法。前記デステージ速度は、前記NVSの前記合計占有率が最大合計占有率を上回る場合、前記デステージ速度を最大速度に設定し、前記NVSの前記デバイス占有率が最小デバイス占有率を下回る場合、前記デステージ速度を最小速度に設定し、他の場合には、前記ストレージデバイスに関する前記現在のデバイス占有率対前記最大デバイス占有率の比に基づいて前記デステージ速度を設定する、ことによって適応変化される、請求項2に記載の方法。前記デステージ速度は、ストレージデバイスのステージアクティビティ、デバイスアダプタのステージアクティビティ及びデバイスアダプタの使用帯域幅のうちの少なくとも1つを含む現在のステージアクティビティに応じて適応調整される、前記請求項のいずれか1項に記載の方法。前記デステージ速度は、前記ストレージデバイスの読み出し/書き込み速度に応じて適応調整される、請求項4に記載の方法。前記デステージ速度は、ストレージデバイスのステージアクティビティ、デバイスアダプタのステージアクティビティ、デバイスアダプタの使用帯域幅、及び前記ストレージデバイスの読み出し/書き込み速度の各々を含む現在のステージアクティビティに応じて適応調整される、請求項1に記載の方法。前記デステージ速度は、平均して前記NVSの前記合計占有率を所望の占有率に維持して、前記複数のストレージデバイスへのデータスループットを増大させるように適応変化され、かつ、ホスト読み出し及び書き込み応答時間を短縮するように適応調整される、請求項1に記載の方法。デステージ速度の索引付きテーブルを準備するステップであって、前記デステージ速度を適応変化させるステップは、前記ストレージデバイスに関連した前記NVSの前記現在のデバイス占有率に基づいて初期索引を計算するステップを含み、前記デステージ速度を適応調整するステップは、前記ストレージデバイスに関連した前記現在のステージアクティビティに応じて前記初期索引をインクリメント又はデクリメントするステップを含む、ステップと、前記調整された索引に従って、前記テーブルから前記調整されたデステージ速度を読み出すステップと、をさらに含む、請求項1から請求項4までのいずれか1項に記載の方法。平均して前記NVSの合計占有率を所望の合計占有率に維持して、前記複数のストレージデバイスへのスループットを増大させ、かつ、読み出し及び書き込み応答時間を短縮するように、前記現在のステージアクティビティ及び前記索引付きテーブル内のデステージ速度に応じて、前記初期索引のインクリメント又はデクリメントを選択するステップをさらに含む、請求項8に記載の方法。デバイスアダプタを介して、データをキャッシュ及び不揮発性ストレージNVSから複数のストレージデバイスにデステージするためのシステムであって、前記キャッシュ及び前記NVS、並びに前記複数のストレージデバイスと通信し、請求項1から請求項9までのいずれか1項に記載の方法を実行するように適合される、少なくとも1つのプロセッサを含むシステムデバイスアダプタを介して、データをキャッシュ及び不揮発性ストレージNVSから複数のストレージデバイスにデステージするのを容易にするためのコンピュータプログラム製品であって、前記コンピュータプログラム製品は、コンピュータ可読プログラムコード部分が内部に格納されたコンピュータ可読ストレージ媒体を含み、前記コンピュータ可読プログラムコード部分は、コンピュータによって実行されるとき、前記コンピュータに、請求項1から請求項9までのいずれかに記載のステップを実行させる、前記コンピュータプログラム製品。本発明は、ストレージコントローラにおけるデステージタスクの動的管理の方法、システム、及びコンピュータプログラム製品を提供する。上記のことを考慮して、1つ又は複数のプロセッサにより、デバイスアダプタを介して書き込みキャッシュ及びNVSからストレージデバイスのプールへのデータ転送を容易にするための方法、システム、及びコンピュータプログラム製品が提供される。プロセッサは、特定のストレージデバイスに関連したNVSの現在の占有率及びそのストレージデバイスに関連したステージアクティビティstageactivityに基づいて、デステージ速度を適応変化させる。ステージアクティビティは、ストレージデバイスのステージアクティビティ、デバイスアダプタのステージアクティビティ、デバイスアダプタの使用帯域幅、及びストレージデバイスの読み出し/書き込み速度のうちの1つ又は複数を含む。これらの因子は、一般に、キャッシュミスの場合に読み出し応答時間と関連し、通常、デステージ速度の動的管理とは関連しない。この組み合わせは、NVSの所望の全占有率を維持すると同時に、読み出し及び書き込み応答時間性能を向上させる。この手法は、異なるタイプの作業負荷読み出し、書き込み、逐次的な、ランダムな、異なるタイプのストレージデバイス、及び異なるデバイス速度にわたって、全体の読み出し及び書き込み性能を向上させる。本発明の一実施形態によると、各々のストレージデバイスについて、プロセッサは、特定のストレージデバイスに関連したNVSの現在のストレージ占有率に応じて、キャッシュからのデータのデステージ速度を適応変化させる。プロセッサは、ストレージデバイスに関連した現在のステージアクティビティに応じて、デステージ速度を適応調整する。現在のステージアクティビティは、ストレージデバイスのステージアクティビティ、デバイスアダプタのステージアクティビティ、デバイスアダプタの使用帯域幅、及びストレージデバイスの読み出し/書き込み速度のうちの1つ又は複数を含む。調整されたデステージ速度は、ステージアクティビティが低い場合には相対的に高くなり、ステージアクティビティが高い場合には相対的に低くなる。プロセッサは、データを、調整されたデステージ速度でキャッシュからストレージデバイスにデステージし、NVSからそのデータを破棄する。プロセッサは、特定のストレージデバイスに関連したNVSの現在の占有率及びそのストレージデバイスに関連したステージアクティビティに基づいて、デステージ速度を適応変化させ、NVSの所望の全占有率及びストレージデバイスへのスループットを維持すると同時に、読み出し及び書き込み応答時間を改善することができる。スループットは、ホストからキャッシュ/ストレージまで測定され、これはキャッシュからストレージへのスループットに依存する。読み出し/書き込み時間は、ホストの観点から測定される。プロセッサは、NVSの全占有率が高閾値最大合計占有率を上回る場合にはデステージ速度を最大値に設定することができ、ストレージデバイスの占有率が低閾値最小デバイス占有率を下回る場合にはデステージ速度を最小値に設定することができる。これらの閾値は固定されてもよく、又は作業負荷によって変化してもよい。あらゆる単一ストレージデバイスに関するNVSの占有率を、最大デバイス占有率に制限するように、プロセッサを構成することができる。プロセッサは、デステージ速度の索引付きテーブルを提供することができる。プロセッサは、ストレージデバイスに関するNVSの現在のデバイス占有率に基づいて、初期索引を計算し、そのストレージデバイスに関連する現在のステージアクティビティに応じて、初期索引をインクリメント又はデクリメントすることができる。プロセッサは、索引付きテーブルから調整されたデステージ速度を読み出す。本発明の別の実施形態によると、各々のストレージデバイスについて、プロセッサは、NVSの所望の合計占有率を維持し、複数のストレージデバイスへの書き込みスループットを増加させるように、キャッシュからのデータのデステージ速度を適応変化させる。プロセッサは、各々のストレージデバイスに関するNVSのデバイス占有率を、最大デバイス占有率を上回らないように制限するように構成される。全てのストレージデバイスに対するNVS内の使用可能スペースの合計最大割り当ては、NVS内の使用可能スペースの100パーセントを超える。プロセッサは、NVSの合計占有率が最大合計占有率を上回る場合にはデステージ速度を最大値に設定し、NVSのデバイス占有率が最小デバイス占有率を下回る場合にはデステージ速度を最小値に設定し、他の場合には、現在のデバイス占有率対最大デバイス占有率の比に基づいてデステージ速度を設定することにより、デステージ速度を適応変化させる。プロセッサは、少なくともストレージデバイスのステージアクティビティ及びデバイスアダプタの使用帯域幅場合によっては、デバイスアダプタのステージアクティビティ、並びにストレージデバイスの読み出し/書き込み速度も同様にを含む、ストレージデバイスに関連する現在のステージアクティビティに応じて、デステージ速度を適応調整して、読み出し及び書き込み応答時間を短縮する。調整されたデステージ速度は、ステージアクティビティが低い場合には相対的に高くなり、ステージアクティビティが高い場合には相対的に低くなる。プロセッサは、データを、調整されたデステージ速度でキャッシュからストレージデバイスにデステージし、NVSからそのデータを破棄する。プロセッサに、デステージ速度が最小索引に関する最小速度から最大索引に関する最大速度まで増加するデステージ速度の索引付きテーブルを提供することができる。プロセッサは、ストレージデバイスに関するNVSの現在のデバイス占有率に基づいて初期索引を計算することによってデステージ速度を適応変化させ、NVSの合計占有率が最大合計占有率を上回る場合には、初期索引を最大索引に設定し、NVSのデバイス占有率が最小デバイス占有率を下回る場合には、初期索引を最小索引に設定し、他の場合には、現在のデバイス占有率対最大デバイス占有率の比に基づいて初期索引を設定する。プロセッサは、ストレージデバイスに関する現在のステージアクティビティに応じて、初期索引をインクリメント又はデクリメントすることによって、デステージ速度を適応調整し、ストレージデバイスのステージアクティビティ及びデバイスアダプタの使用帯域幅が相対的に高い場合には、索引をデクリメントし、或いは、ストレージデバイスのステージアクティビティ及びデバイスアダプタの使用帯域幅が相対的に低い場合には、索引をインクリメントする。プロセッサは、調整された索引に従って、テーブルから調整されたデステージ速度を読み出す。関連するシステム及びコンピュータプログラム製品の実施形態も開示され、付加的な利点を与える。ここで本発明の実施形態を、単なる例証として、添付の図面を参照しながら説明する。上記を鑑みて、プロセッサ又は複数プロセッサにより、デバイスアダプタを介して書き込みキャッシュ及びNVSからストレージデバイスのプールへのデータ転送を容易にするための種々の方法、システム、及びコンピュータプログラム製品の実施形態が提供される。プロセッサは、特定のストレージデバイスに関連するNVSの現在の占有率及びそのストレージデバイスに関連するステージアクティビティに基づいて、デステージ速度を適応変化させる。ステージアクティビティは、ストレージデバイスのステージアクティビティ、デバイスアダプタのステージアクティビティ、デバイスアダプタの使用帯域幅、及びストレージデバイスの読み出し/書き込み速度のうちの1つ又は複数を含む。これらの因子は、一般に、キャッシュミスの場合の読み出し応答時間と関連し、通常、デステージ速度の動的管理とは関連しない。この組み合わせは、NVSの所望の全占有率及びストレージデバイスへのスループットを維持すると同時に、読み出し/書き込み応答時間を改善する。スループットは、ホストからキャッシュ/ストレージまで測定され、これはキャッシュからストレージへのスループットに依存する。読み出し/書き込み時間は、ホストの観点から測定される。この手法は、異なるタイプの作業負荷読み出し、書き込み、逐次的な、ランダム、異なるタイプのストレージデバイス、及び異なるデバイス速度にわたって、全体の読み出し及び書き込み性能を向上させる。コンピュータネットワークアーキテクチャは、ネットワークによって相互接続された1つ又は複数のコンピュータを含むことができる。ネットワークは、例えば、ローカルエリアネットワークLAN、広域ネットワークWAN、インターネット、イントラネット等を含むことができる。特定の実施形態において、コンピュータは、クライアントコンピュータ及びサーバコンピュータの両方を含むことができる。一般に、クライアントコンピュータは通信セッションを開始できるのに対して、サーバコンピュータはクライアントコンピュータからの要求を待つことができる。特定の実施形態において、コンピュータ及び/又はサーバは、1つ又は複数の内部又は外部の直接接続型directattachedストレージデバイス例えば、ハードディスクドライブ、ソリッドステートドライブ、テープドライブなどに接続することができる。これらのコンピュータ及び直接接続型ストレージデバイスは、ATA、SATA、SCSI、SAS、ファイバチャネル等のようなプロトコルを用いて通信することができる。コンピュータの一部又は全ては、ストレージデバイスから取り出されたデータを格納するためのキャッシュを含むことができる。コンピュータネットワークアーキテクチャは、特定の実施形態において、サーバの背後に、ストレージエリアネットワークSAN又はLAN例えば、ネットワーク接続型networkattachedストレージを用いるときのようなストレージネットワークを含む。このネットワークは、サーバを、別個のハードディスクドライブ又はソリッドステートドライブ、ハードディスクドライブ又はソリッドステートドライブのアレイ、テープドライブ、テープライブラリ、CD-ROMライブラリ等のような1つ又は複数のストレージシステムに接続することができる。ネットワークがSANである場合、サーバ及びストレージシステムは、ファイバチャネルFCのようなネットワーク化標準を用いて通信することができる。図1は、SAN102に接続されたストレージシステム100の一実施形態を示す。ストレージシステム100は、RAIDアレイのようなハードディスクドライブHDD及び/又はソリッドステートドライブSDDのアレイを含む。特定の実施形態において、デステージング技術は、こうしたストレージシステム100内で実装することができるので、ストレージシステム100の内部コンポーネントが示されるが、それらは、他のストレージシステム100にも適用可能である。図示したように、ストレージシステム100は、ストレージコントローラ104、1つ又は複数のスイッチ106、及びハードディスクドライブ108又はソリッドステートドライブ108のような1つ又は複数のストレージデバイス108を含む。ストレージコントローラ104は、1つ又は複数のホスト例えば、オープンシステム及び/又はメインフレームサーバが1つ又は複数のストレージデバイス108内のデータにアクセスするのを可能にする。選択された実施形態において、ストレージコントローラ104は、1つ又は複数のサーバ110を含む。ストレージコントローラ104はまた、それぞれホストデバイス及びストレージデバイス108に接続するためのホストアダプタ112及びデバイスアダプタ113を含むこともできる。複数のサーバ110a、110bは、データが接続されたホストに対して常に利用可能であることを確実にするために、冗長性をもたらすことができる。従って、1つのサーバ110aが故障しても、他のサーバ110bは機能できるままであり、I/Oは、ホストとストレージデバイス108との間で継続可能であることを保証する。このプロセスはフェイルオーバーfailoverと呼ぶことができる。図1に示されるものと類似したアーキテクチャを有するストレージコントローラ104の一例が、IBMDS8000商標エンタープライズストレージシステムである。DS8000商標は、連続動作をサポートするように設計されたディスクストレージを提供する、高性能大容量ストレージコントローラである。DS8000商標シリーズのモデルは、IBMのPOWER5商標サーバ110a、110bを使用することができ、IBMの仮想化エンジン技術と統合することができる。しかしながら、本明細書で開示されるキャッシング装置及び方法は、IBMDS8000商標エンタープライズストレージシステム100に限定されるものではなく、製造業者、製品名、又はシステムと関連したコンポーネント若しくはコンポーネント名に関係なく、同等の又は類似のストレージシステムにおいて実装することができる。さらに、本発明の1つ又は複数の実施形態から恩恵を受けることができるいずれのシステムも、本発明の範囲内に入るものと見なされる。従って、IBMDS8000商標は、一例として提示したものにすぎず、限定することを意図したものではない。選択された実施形態において、各々のサーバ110は、1つ又は複数のプロセッサ114例えば、nウエイnway対称型マルチプロセッサと、メモリ116とを含むことができる。メモリ116は、揮発性メモリ例えば、RAM、及び不揮発性メモリ例えば、ROM、EPROM、EEPROM、ハードディスク、フラッシュメモリ等を含むことができる。揮発性メモリ及び不揮発性メモリは、特定の実施形態においては、プロセッサ114上で実行され、ストレージデバイス108内のデータにアクセスするために用いられるソフトウェアモジュールを格納することができる。サーバ110は、これらのソフトウェアモジュールの少なくとも1つのインスタンスをホストすることができる。これらのソフトウェアモジュールは、ストレージデバイス108内の論理ボリュームへの全ての読み出し及び書き込み要求を管理することができる。メモリ116は、揮発性キャッシュ118を含む。ホスト例えば、オープンシステム又はメインフレームサーバが読み出し動作を実行するたびに、サーバ110は、ストレージデバイス108からデータをフェッチし、そのデータが再度要求された場合にデータをキャッシュ118内に保存する。データがホストによって再度要求された場合、サーバ110は、そのデータを、ストレージデバイス108からフェッチする代わりに、キャッシュ118からフェッチすることができ、時間及びリソースの両方を節約する。これは、キャッシュヒットと呼ばれる。キャッシュミストラックが現在キャッシュ内に存在しないであるホスト読み出しの場合、ホスト読み出しが切断され、データはストレージデバイスからキャッシュにステージされ、次いでホスト読み出しが再接続され、データがキャッシュからホストに読み出される。データをストレージデバイスからキャッシュにステージするのにかかる時間は、ストレージデバイスを構成するドライブHDD、SDDの読み出し/書き込み速度、各デバイスアダプタに構成されたストレージデバイスの数、各デバイスアダプタに構成されたストレージデバイスのタイプの混合、デバイスアダプタの全使用帯域幅ステージ及びデステージタスク、並びにストレージデバイス及びデバイスアダプタに課せられるステージ及びデステージタスクの現在の数を含む幾つかの因子に応じて、大きく変化し得る。一実施形態において、各ストレージデバイスは、RAIDであり、これはランクrankと呼ぶことができる。RAIDは、例えば、1、5、6、10などの多数のタイプと、例えば、7k、10k、15k及びSDDなどの異なるディスクRPM速度とを有する。読み出し応答時間は、キャッシュミスの可能性、及びキャッシュミスの場合に、データをストレージデバイスからキャッシュにステージするのにかかる時間によって、部分的に決定される。メモリ116はまた、不揮発性ストレージNVS120を含む。ホストが書き込み動作を実行するとき、サーバ110は、ホスト書き込みが完了したと考えられる時点で、データをキャッシュ118及びNVS120の両方に書き込む。後の時点で、サーバは、データをキャッシュ118からストレージデバイスにデステージし、NVS120からデータを破棄するデータのバッテリバックアップコピーはもはや必要とされないので。データは、一般に、NVSを満杯にすることなくNVSが大きく占有された状態を保持しながら、入ってくる書き込みロード即ち、書き込み要求に遅れずについていくのに十分な速度でデステージされる。NVSが満杯になった場合、キャッシュ書き込みミスの可能性が増大する。NVSは同じ論理アドレスへのより多くの書き込みを吸収することができ、従って、ストレージデバイスへのデータのスループットがより効率的になるため、NVSの占有率が高いほど、書き込みキャッシュがより効率的になる。プロセッサ114は、ソフトウェアモジュールを実行して、ストレージコントローラにおけるデステージタスクを動的に管理するように、より具体的には、そのストレージデバイスに関するNVSの現在の占有率及びストレージデバイスに関連するステージアクティビティの両方に応じて、ストレージデバイスに関するデステージ速度を適合させるように構成される。ステージアクティビティは、ストレージデバイスのステージアクティビティ、デバイスアダプタのステージアクティビティ、デバイスアダプタの使用帯域幅、及びストレージデバイスの読み出し/書き込み速度のうちの1つ又は複数を含む。ストレージデバイスのステージアクティビティのファクタリングfactoringは、スループットレベルを保持しながら、読み出し/書き込み応答時間を改善する。より具体的には、ホストの書き込み応答時間は、条件が許せば、NVSを積極的に空にすることによって改善することができ、読み出し応答時間は、条件が要求するときに、NVSを控えめにconservatively空にすることによって改善することができる。ここで図2を参照すると、デステージタスクの動的管理の方法が、各々のストレージデバイスについて、プロセッサが、特定のストレージデバイスに関するNVSの現在のストレージ占有率に従って、キャッシュからのデータのデステージ速度を適応変化させること200を含む。プロセッサは、ストレージデバイスに関連する現在のステージアクティビティに従って、デステージ速度を適応調整する202。現在のステージアクティビティは、ストレージデバイスのステージアクティビティ、デバイスアダプタのステージアクティビティ、デバイスアダプタの使用帯域幅、及びストレージデバイスの読み出し/書き込み速度のうちの1つ又は複数を含む。調整されたデステージ速度は、ステージアクティビティが低い場合は相対的に高くなり、ステージアクティビティが高い場合は相対的に低くなる。プロセッサは、データを、調整されたデステージ速度でキャッシュからストレージデバイスにデステージし204、NVSからデータを破棄する。現在のストレージ占有率及びステージアクティビティの関数としてのデステージ速度は、所与のコンピューティング環境における全体の読み出し/書き込み性能を最適にするように適切に選択される。より具体的には、デステージ速度は、平均読み出し及び書き込み応答時間を短縮しながら、高スループットを保持するように選択される。ストレージ占有率の関数としての初期ステージ速度は、高い、低い、又は名目デステージ速度に設定することができ、現在のステージアクティビティの関数として上方に、下方に、又は上下に調整することができる。デステージ速度は、式として又はテーブルの形で与えることができる。一実施形態において詳述されるように、ストレージ占有率及びステージアクティビティを用いて、デステージ速度のテーブルへの索引を計算し、調整することができる。図3は、NVSの部分302a、302b、302c、302d及び302e内に、それぞれストレージデバイス108a、108b、108c、108d及び108eのプールに関するホスト書き込みのためのデータ300を格納する、NVS120の一実施形態を示す。各々のストレージデバイスは、NVS120内の関連した現在のストレージ占有率を有する。一般的には、現在のストレージ占有率が大きいほど、そのストレージデバイスに関する、NVSを空にするためのデステージ速度が高くなる。いずれか1つのストレージデバイスの現在のストレージ占有率は、無制約NVSの100を占めることが許容されるにしてもよく、又は最大デバイス占有率例えば、25を上回らないように強いてもよい。後者の技術は、NVSの一部分を各ストレージデバイスに割り当て、1つのストレージデバイスの故障又は処理の遅延が、他のストレージデバイスに対する更新がNVS内にキャッシュされるのを防止するという状況を回避することを保証する。最大デバイス占有率は、幾つかのストレージデバイスの間で一様であってもなくてもよく、固定されていてもいなくてもよい。例えば、最大デバイス占有率は、ストレージデバイスのストレージ容量の加重平均として、又はストレージデバイス上のバックグランド処理の加重平均として計算することができる。最大デバイス占有率は、全てのストレージデバイスへのNVS内の使用可能スペースの合計最大割り当てが、NVS内の使用可能スペースの100を上回るように確立することができる。例えば、5個のストレージデバイスの各々に最大デバイス占有率が割り当てられた場合、合計最大割り当ては125となる。これは、ストレージデバイスの一部が、常にその最大デバイス占有率を使用しているわけではないという統計的仮定に基づいている。最大デバイス占有率が指定された場合、デステージ速度は、その最大デバイス占有率に対する現在のデバイス占有率に基づいて適切に変化される。プロセッサは、デステージ速度を適応変化させるために、他の占有パラメータを考慮することができる。NVSの合計占有率が最大合計占有率を上回る場合、プロセッサは、デステージ速度を最大値に設定することができる。このテストは、NVSが満杯であり、一般に回避されるべき書き込みキャッシュミスを引き起こし得ることのインジケータとなる。従って、プロセッサは、全てのストレージデバイスに関するデステージ速度をその最大値に設定して、所望の占有率に戻るようにNVSを排出する。例えば、所望の全占有率が90である場合、実際の全占有率が95を上回る場合には、プロセッサは、最高速度でデステージすることができる。NVSのデバイス占有率が最小デバイス占有率を下回る場合、プロセッサは、そのストレージデバイスに関するデステージ速度を最小値例えば、ゼロに設定することができる。このテストは、NVSが特定のストレージデバイスに関して、ストレージデバイスへのスループット効率を低下させる、空きすぎ状態であることのインジケータとなる。例えば、特定のストレージデバイスに関する占有率が10より下に下がると、プロセスは、そのストレージデバイスへのデータのデステージングを一時停止することができる。最大合計占有率は、固定してもしなくてもよい。例えば、最大合計占有率は作業負荷と共に変化し得る。最小デバイス占有率は固定してもしなくてもよく、ストレージデバイスにわたって一様であってもなくてもよい。図4は、ストレージデバイスに関連する種々のステージアクティビティ因子activityfactorを示すための、デバイスアダプタ113、スイッチ106、並びにストレージデバイス108a、108b及び108cを含むストレージシステム100の一部分を示す。第1のステージアクティビティ因子は、ストレージデバイスのステージアクティビティ400である。この因子は、ストレージデバイスからの現在のステージ読み出しアクティビティの尺度である。第2のステージアクティビティ因子は、デバイスアダプタのステージアクティビティ402である。この因子は、全てのストレージデバイスからのデバイスアダプタによる現在のステージ読み出しアクティビティの尺度である。第3のステージアクティビティ因子は、デバイスアダプタの使用帯域幅404である。この因子は、全てのストレージデバイスとの間のデバイスアダプタによる現在のステージ読み出し及びデステージ書き込みアクティビティの尺度である。第4のステージアクティビティ因子は、ストレージデバイス406の読み出し/書き込み速度406である。この因子は、ストレージデバイスが、どれだけ速くデータを読み出し/書き込みできるかの尺度である。前述のように、これらの因子は一般に、読み出しキャッシュミスの場合の読み出し応答時間に関連する。これらの因子は、通常、データのデステージングとは関連せず、具体的には、デステージ速度を適応調整するためには用いられない。ストレージデバイスのステージアクティビティにおけるファクタリングは、スループットのレベルを維持しながら、読み出し/書き込み応答時間を改善する。より具体的には、ホスト書き込み応答時間は、条件が許すときにNVSを積極的に空にすることによって改善することができ、読み出し応答時間は、条件の要求時にNVSを控えめに空にすることによって改善することができる。この技術は、書き込み又は読み出しキャッシュミスの数を減らすのに特に有効である。僅かな減少でも全体の応答時間に多大な影響を及ぼす。図5a及び図5bは、現在のデバイス占有率及びステージアクティビティをデステージ速度に関連付けるための1つの実施形態の例証である。デステージ速度の索引付きテーブル500が、メモリ内に格納される。デステージ速度は、最小の索引例えば、ゼロにおける最小速度例えば、ゼロから増大し、最大の索引例えば、13に関する最大速度例えば、60まで増大する。このテーブルは、所与のコンピューティング環境に関する式又は数値分析から適切に生成される。図示のように、デステージ速度は索引に対して非線形である。これは典型的ではあるが必須ではない。プロセッサは、現在のデバイス占有率に基づいて、初期索引を計算する。プロセッサは、ステージアクティビティ因子の1つ又は複数によって与えられるような現在のステージアクティビティに基づいて、初期索引を調整する。プロセッサは、調整された初期索引を用いて、テーブル500から調整されたデステージ速度を読み出す。この特定の実施形態において、初期索引は、ストレージデバイスに関するNVSの現在の占有率に基づいて、名目値502に設定される。プロセッサは、ステージアクティビティに基づいて、この名目値をインクリメント又はデクリメントする。ステージアクティビティが高い場合、デステージ速度を低下させて、ステージアクティビティに関するより多くのリソースを提供し、ステージアクティビティが低い場合、デステージ速度を増大させて、より迅速にNVSを排出する。代替的に、プロセッサは、現在の占有率に基づいて、初期索引を高い低い値に設定し、ステージアクティビティに基づいて、デクリメントインクリメントのみを行うことができる。効果は同じである。NVSの全占有率が最大合計占有率閾値を上回る場合、プロセッサは、索引を最大値504に設定することができる。同様に、デバイス占有率が最小デバイス占有率を下回る場合、プロセッサは、索引を最小値506に設定することができる。これらの極端な場合のいずれにおいても、ステージアクティビティを考慮しなくてもよい。図6は、各々のストレージデバイスに関するデステージ速度を、そのストレージデバイスに関するNVSの占有率及びステージアクティビティの両方に基づいて動的に管理するための1つの実施形態のフロー図である。この実施形態において、初期索引は、占有率に基づいて名目値に設定され、ステージアクティビティ因子の各々に基づいてインクリメント又はデクリメントされる。合計占有率が閾値THI最大合計占有率を上回る場合、プロセッサは、索引を最大索引に設定して終了する600。デバイス占有率が閾値TH2最小デバイス占有率を下回る場合、プロセッサは、索引を最小索引に設定して終了する602。他の場合には、プロセッサは、現在のデバイス占有率対最大デバイス占有率の比と索引の数との積に等しくなるように、初期索引を設定する604。この実施形態において、初期索引は、最大デバイス占有率に正規化された現在のデバイス占有率に直線的に比例する。デバイス占有率から索引への他のマッピングを用いることもできる。プロセッサは、1つ又は複数のステージアクティビティ因子の各々をチェックし、それに応じて索引をインクリメント又はデクリメントする。プロセッサは、ストレージデバイスに対する現在のステージ要求をチェックする606。ステージ要求の数が低閾値TH3を下回る場合、プロセッサは、初期索引をインクリメントする608。ステージ要求の数が高閾値TH4を上回る場合、プロセッサは、初期索引をデクリメントする610。プロセッサは、デバイスアダプタの現在の使用帯域幅をチェックする612。使用帯域幅が低閾値TH5を下回る場合、プロセッサは、初期索引をインクリメントする614。使用帯域幅が高閾値TH6を上回る場合、プロセッサは、初期索引をデクリメントする616。プロセッサは、デバイスアダプタに対する現在のステージ要求をチェックする618。ステージ要求の数が低閾値TH7を下回る場合、プロセッサは、初期索引をインクリメントする620。ステージ要求の数が高閾値TH8を上回る場合、プロセッサは、初期索引をデクリメントする622。プロセッサは、ストレージデバイスの速度をチェックする624。デバイス速度が高い場合、プロセッサは索引をインクリメントする626。デバイス速度が低い場合、プロセッサは索引をデクリメントする628。ステージアクティビティ因子の各々に対して索引がインクリメント又はデクリメントされる量は、コンピューティング環境によって決まり、環境の計算又は数値分析によって設定することができる。調整された索引が最大索引を上回る場合、プロセッサは、最大索引と等しくなるように調整された索引を設定し、調整された索引が最小索引を下回る場合、プロセッサは、最小索引と等しくなるように調整された索引を設定する630。索引が、600及び602の閾値化プロセスによって、又は604乃至630の現在のデバイス占有率及びステージアクティビティに従って設定されると、プロセッサは、索引を用いて、テーブルから調整されたデステージ速度を抽出する632。プロセッサは、データを、調整されたデステージ速度でキャッシュからストレージデバイスにデステージする634。この技術は、プール内のストレージデバイスの各々に関するデステージ速度を決定するために用いられる。条件が変化したとき、この技術を繰り返して、ストレージデバイスの各々に関するデステージ速度を更新する。図7は、特定のコンピューティング環境内の各ストレージデバイスについてのデステージ速度を、そのストレージデバイスに関連するNVSの占有率及びステージアクティビティの両方に基づいて動的に管理するための1つの実施形態のフロー図である。この実施形態において、初期索引は、占有率に基づいて低値に設定され、ステージアクティビティ因子のテストされた組み合わせに基づいてインクリメントされる。合計占有率が90を上回る場合、プロセッサは、索引を最大索引に設定して終了する700。デバイス占有率が10を下回る場合、プロセッサは、索引をゼロに設定して終了する702。他の場合には、プロセッサは、現在のデバイス占有率対最大デバイス占有率の比と索引の数との積と等しくなるように、初期索引を設定する704。デバイスアダプタにおける使用帯域幅が70を下回る場合、プロセッサは、索引を、ストレージデバイスがHDDである場合にはプラス2だけインクリメントし、ストレージデバイスがSDDである場合にはプラス4だけインクリメントする706。ストレージデバイスにおけるステージアクティビティが10を下回り、デバイスアダプタにおけるステージアクティビティが40を下回る場合、プロセッサは、索引をプラス2だけインクリメントする708。閾値のパーセンテージ及び索引のインクリメント量は、代表的なものにすぎない。コンピューティング環境に応じて、他の閾値及びインクリメント、並びにステージアクティビティ因子の異なる組み合わせを用いることができる。索引が最大索引を上回る場合、プロセッサは、最大索引と等しくなるように索引を設定する710。プロセッサは、索引を用いて、テーブルから調整されたデステージ速度を抽出する712。プロセッサは、データを、調整されたデステージ速度でキャッシュからストレージデバイスにデステージする714。図8及び図9は、ステージアクティビティに部分的に基づいたキャッシング技術の動的管理を用いた場合と用いない場合のキャッシング技術の性能を比較するプロットである。基準手法baselineapproachはNVS占有率のみに基づいてデステージ速度を管理し、一方、本発明の実施形態は、NVS占有率をステージアクティビティと組み合わせる。図8は、ステージアクティビティを用いた場合実線800及び用いない場合破線802の、1分当たりの平均応答時間読み出し/書き込み対DBトランザクションの数をプロットしたものである。ユーザ数及びトランザクション/分が増加するにつれて、NVS占有率とステージアクティビティを組み合わせたキャッシュ管理は、より良好な応答時間をもたらす。環境が過負荷状態となる屈曲点は右にシフトする。図9は、ステージアクティビティを用いた場合804と用いない場合806の、1分当たりの288,000のユーザ、約35,000DBトランザクションにおける、読み出しカウントバケットの分布である。短い読み出しのパーセンテージは、2つの技術においてほぼ等しい。ステージアクティビティにおけるファクタリングは、少量ではあるが長い読み出しのパーセンテージを減らす。しかしながら、長い読み出しにおける僅かな改善でも、それらの長い読み出しのためのサービス時間における大きな改善をもたらす。この例においては、排除された300ミリ秒を上回る0.11の読み出しにより、それらの読み出しによるサービス時間のパーセンテージが約4パーセントだけ減少した。通常は読み出しキャッシュミスの場合の読み出し応答時間とのみ関連しているステージアクティビティ因子を、NVS占有率と組み合わせることによって、動的キャッシュ管理の技術が、異なるタイプの作業負荷読み出し、書き込み、逐次的な、ランダムな、異なるタイプのストレージデバイス、及び異なる速度にわたって、全体の読み出し/書き込み性能を向上させる。より具体的には、ステージアクティビティが許容するときにストレージデバイスへのデステージ速度を増加させることによって、書き込み応答時間が改善され、ステージアクティビティの要求時にデステージ速度を低下させることによって、スループットを犠牲にすることなく読み出し応答時間が改善される。当業者であれば認識するように、本発明の態様は、システム、方法、又はコンピュータプログラム製品として具体化することができる。従って、本発明の態様は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態ファームウェア、常駐ソフトウェア、マイクロコード等を含む、又は、ソフトウェアの態様とハードウェアの態様とを組み合わせた実施形態の形を取ることができ、本明細書においてはこれらの全てを一般に、回路、モジュール、又はシステムと呼ぶことができる。さらに、本発明の態様は、コンピュータ可読プログラムコードが組み入れられた1つ又は複数のコンピュータ可読媒体内に具体化されたコンピュータプログム製品の形を取ることができる。1つ又は複数のコンピュータ可読媒体の任意の組み合わせを利用することができる。コンピュータ可読媒体は、コンピュータ可読信号媒体又はコンピュータ可読ストレージ媒体とすることができる。コンピュータ可読ストレージ媒体は、例えば、これらに限られるものではないが、電子、磁気、光学、電磁気、赤外線若しくは半導体のシステム、装置若しくはデバイス、又は上記のいずれかの適切な組み合わせとすることができる。コンピュータ可読ストレージ媒体のより具体的な例非網羅的なリストとして、1つ又は複数の配線を有する電気的接続、ポータブルコンピュータディスケット、ハードディスク、ランダムアクセスメモリRAM、読み出し専用メモリROM、消去可能プログラム可能読み出し専用メモリEPROM又はフラッシュメモリ、光ファイバ、ポータブルコンパクトディスク読み出し専用メモリCD-ROM、光記憶装置、磁気記憶装置、又は上記のいずれかの適切な組み合わせが挙げられる。本明細書の文脈では、コンピュータ可読ストレージ媒体とは、命令実行システム、装置若しくはデバイスによって又はこれらと接続して用いるために、プログラムを収容又は格納することができるいずれかの有形媒体とすることができる。コンピュータ可読媒体上に具体化されたプログラムコードは、これらに限られるものではないが、無線、有線、光ファイバケーブル、RF等、又は上記のいずれかの適切な組み合わせを含む、いずれかの適切な媒体を用いて伝送することができる。本発明の態様に関する動作を実行するためのプログラムコードは、Java、Smalltalk、Cなどのオブジェクト指向プログラミング言語、及び、Cプログラミング言語又は同様のプログラミング言語などの従来の手続き型プログラミング言語を含む、1つ又は複数のプログラミング言語の任意の組み合わせで書くことができる。プログラムコードは、ユーザのコンピュータ上で完全に実行される場合もあり、ユーザのコンピュータ上で部分的に実行される場合もあり、独立したソフトウェアパッケージとして実行される場合もあり、ユーザのコンピュータ上で部分的に実行され、遠隔コンピュータ上で部分的に実行される場合もあり、又は遠隔コンピュータ若しくはサーバ上で完全に実行される場合もある。一番最後のシナリオの場合、遠隔コンピュータは、ローカルエリアネットワークLAN又は広域ネットワークWANを含むいずれかのタイプのネットワークを通じてユーザのコンピュータに接続される場合もあり、又は外部のコンピュータへの接続がなされる場合もある例えば、インタネットサービスプロバイダを用いたインターネットを通じて。本発明の態様は、本発明の実施形態による方法、装置システム、及びコンピュータプログラム製品のフローチャート図及び/又はブロック図を参照して、後述される。フローチャート図及び/又はブロック図の各ブロック、並びにフローチャート図及び/又はブロック図内のブロックの組み合わせは、コンピュータプログラム命令によって実装できることが理解されるであろう。これらのコンピュータプログラム命令を、汎用コンピュータ、専用コンピュータ、又は他のプログラム可能データ処理装置のプロセッサに与えてマシンを生産し、それにより、コンピュータ又は他のプログラム可能データ処理装置のプロセッサによって実行される命令が、フローチャート及び/又はブロック図の1つ又は複数のブロック内で指定された機能/動作を実装するための手段を生成するようにすることができる。コンピュータプログラム命令を、コンピュータ、他のプログラム可能データ処理装置、又は他のデバイスに特定の方式で機能させるように指示することができるコンピュータ可読媒体内に格納して、それにより、そのコンピュータ可読媒体内に格納された命令が、フローチャート及び/又はブロック図の1つ又は複数のブロック内で指定された機能/動作を実装するための命令を含む製品を製造するようにすることもできる。コンピュータプログラム命令を、コンピュータ、他のプログラム可能データ処理装置、又は他のデバイスにロードし、一連の動作ステップをコンピュータ、他のプログラム可能データ処理装置、又は他のデバイス上で実行させて、コンピュータ実施プロセスを生成し、それにより、コンピュータ又は他のプログラム可能データ処理装置上で実行される命令が、フローチャート及び/又はブロック図の1つ又は複数のブロック内で指定された機能/動作を実装するためのプロセスを提供するようにすることもできる。上記の図面におけるフローチャート及び/又はブロック図は、本発明の様々な実施形態による、システム、方法及びコンピュータプログラム製品の可能な実装形態のアーキテクチャ、機能及び動作を示すものである。この点で、フローチャート又はブロック図における各々のブロックは、モジュール、セグメント又はコードの一部を表すことができ、これらは、指定された論理機能を実装するための1つ又は複数の実行可能命令を含む。幾つかの代替的な実装形態においては、ブロックに記された機能が図面に記された順序通りに行われない場合があることにも留意されたい。例えば、連続して示された2つのブロックが、実際には実質的に同時に実行されることがあり、これらのブロックが、関与する機能に応じて、ときとして逆順で実行されることもある。ブロック図及び/又はフローチャート図における各々のブロック、並びにブロック図及び/又はフローチャート図におけるブロックの組み合わせは、指定された機能若しくは動作を行う専用ハードウェアベースのシステム又は専用のハードウェアとコンピュータ命令との組み合わせによって実装できることにも留意されたい。本明細書で用いられる用語は、特定の実施形態を説明する目的のためのものにすぎず、本発明を限定することを意図するものではない。本明細書で用いられるとき、単数形1つのa、1つのan及びそのtheは、そうでないことが示されていない限り、複数形も含むことが意図されている。本明細書で用いられるとき、含むcomprise及び/又は含んでいるcomprisingという用語は、提示された特徴、整数、ステップ、動作、要素、及び/又はコンポーネントの存在を特定するものであるが、1つ又は複数の他の特徴、整数、ステップ、動作、要素、コンポーネント、及び/又はそれらのグループの存在又は追加を排除するものではないことがさらに理解されるであろう。特許請求の範囲における全ての手段又はステップと機能との組合せミーンズ又はステッププラスファンクション要素の対応する構造、材料、動作及び均等物は、その機能を、明確に特許請求されているように他の特許請求された要素と組み合わせて実行するための、いかなる構造、材料又は動作をも含むことが意図される。本発明の説明は、例示及び説明の目的で提示されたものであるが、網羅的であることを意図するものではなく、本発明を開示された形態に限定することを意図するものでもない。本発明の範囲及び精神から逸脱することのない多くの変更及び変形が、当業者には明らかであろう。実施形態は、本発明の原理及び実際の用途を最も良く説明するため、及び、当業者が本発明を種々の変更を有する種々の実施形態について企図される特定の使用に適したものとして理解することを可能にするために、選択及び記載された。"