私や他のテクノロジアーキテクトは、Caché IOの要件と、Cachéアプリケーションがストレージシステムを使用する方法を顧客とベンダーに説明しなければならないことがよくあります。以下の表は、一般的なCaché IOプロファイルと、トランザクションデータベースアプリケーションの要件を顧客やベンダーに説明するときに役立ちます。 オリジナルの表は、マーク・ボリンスキーが作成しました。 

今後の投稿ではストレージIOについて詳しく説明する予定なので、今後の記事の参考資料として、今回これらの表も公開します。 

このシリーズの他の記事のリストはこちら 

予測可能なディスクIOパフォーマンスを提供し、高可用性機能をサポートし、アプリケーションにストレージの冗長性、スケーラビリティ、および信頼性を提供するには、ストレージアレイなど、ストレージを適切に設定することが不可欠です。 

CachéストレージIOプロファイル 

選択したストレージアレイテクノロジーによっては、物理層のディスクストレージがプールまたはディスクグループに分離される場合があります。 可能であれば、可用性とパフォーマンスのために、予想されるIOプロファイルに基づいてストレージをパーティション化する必要があります。 たとえば、データとジャーナル(トランザクションログ)は別々の物理ディスクグループに存在する必要があります。それは、これらが異なるIOプロファイルを持っているためです。また、データディスクグループの破損は破損から分離された別のディスクグループのジャーナルを使用することによって回復できるため、可用性のためにもこれが必要です。 

同様に、バックアップは別のディスクグループに配置する必要があります。 オペレーティングシステム、ストレージベンダー、アレイモデルに応じて、ストレージ構成には多くの選択肢があります。 正確な要件はアプリケーション固有のものであり、物理および論理グループまたはプールの割り当て、RAIDタイプ、ファイルシステムタイプと同時実行性、割り当てられたGB領域など、物理および論理構成に特別な注意が必要です。 

以下の表に、Cachéの読み取りおよび書き込みIOプロファイルの詳細を示します。 

 

IOの種類  いつ  どうやって  注意事項 
データベース読み取り  ユーザープロセスによって継続的に  ユーザープロセスがディスクI/Oを開始してデータを読み取る  データベースの読み取りは、Webページを提供するデーモン、SQLクエリ、または直接的なユーザープロセスのいずれかによって実行されます。 
データベース書き込み  約 80秒ごと、またはデータベースキャッシュの保留中の更新の割合でバースト  データベース書き込みデーモン(最大8プロセス)  データベースの書き込みは、書き込みデーモンと呼ばれる一連のデータベースシステムプロセスによって実行されます。 ユーザープロセスはデータベースキャッシュを更新し、トリガー(時間またはアクティビティの閾値)は、書き込みデーモンを使用して更新をディスクに送信します。 通常、トランザクションレートに応じて、書き込みサイクル中に書き込む必要がある数MBから数GBの範囲を想定しています。 
ジャーナル書き込み  2秒未満、ジャーナルバッファー全体または同期要求  データベースジャーナルデーモン(1プロセス)  ジャーナルの書き込みはシーケンシャルであり、サイズは4KBから4 MBまでの可変です。 書き込みは最低毎秒数十から可能で、ECPと個別のアプリケーションサーバーを使用する非常に大規模なデプロイメントでは数千の書き込みが可能です。 
イメージジャーナル書き込み  約 80秒ごと、またはデータベースキャッシュの保留中の更新の割合でバースト  データベースマスター書き込みデーモン(1プロセス)  このジャーナルは、データベース書き込みサイクル中のシステム障害から物理データベースファイルの整合性を保護するために使用されます。 書き込みのサイズはそれぞれ約256KBです。 

 

CachéストレージIO要件 

ストレージのボトルネックは、データベースシステムのパフォーマンスに影響を与える最も一般的な問題の1つであることがわかりました。 一般的な問題は、予想される1秒あたりの入出力操作毎秒(IOPS)をサポートするのに十分な数のディスクを割り当てるのではなく、単にGB容量に合わせてストレージのサイズを決定することです。 SSDと階層型ストレージが一般的になりましたが、IOPSを確実に使用できるように注意する必要があります。 

エンドユーザーの許容可能な応答時間を保証するには、最小のIOパフォーマンスプロファイルを持つディスクアレイが必要です。 要件は、個別のアプリケーション(ECP)サーバーを使用するかどうかによって若干異なります。 期待されるストレージ応答時間とIOプロファイルに関する注意事項を以下の表に示します。   

 

IOの種類  平均応答時間  最大応答時間  注意事項 
8KBデータベースランダム読み取り(非キャッシュ)  6ミリ秒以下  10ミリ秒以下  データベースブロックは固定の8Kです。ホスト上のデータベースキャッシュが大きいため、ディスクへのほとんどの読み取りはキャッシュされません。 
8KBデータベースランダム書き込み(キャッシュ)  1ミリ秒以下  2ミリ秒以下  すべてのデータベースファイルの書き込みは、ストレージコントローラーのキャッシュメモリによってキャッシュされることが期待されます。 
4KB~4 MBのジャーナル書き込み(ECPなし)  1ミリ秒以下  2ミリ秒以下  ジャーナルの書き込みはシーケンシャルであり、サイズは4KBから4 MBまでの可変です。 アプリケーションサーバーが使用されていない場合、書き込み量は比較的少なくなります。 
4KB~4 MBのジャーナル書き込み(ECPあり)  0.5ミリ秒以下  1ミリ秒以下  ECPから生成されたジャーナル同期要求は、スケーラビリティを維持するために厳しい応答時間要件を課します。 同期要求の発行により、ジャーナルの最後のブロックへの書き込みがトリガーされ、データの耐久性が確保されます。 

何が不足していますか? 

ベンダーと話をする前に、ストレージオプションが上記の要件を満たすように構成するため、アプリケーションが駆動すると予想されるIOPSの見積もりが必要になります。 シリーズのパート1と2は、メトリックの収集方法の例を示しています。