Solaris ボリュームマネージャの管理

ランダム入出力と順次入出力の最適化

この節では、特定の構成を最適化する際に用いる、Solaris ボリュームマネージャの手法について説明します。

作成しようとしている Solaris ボリュームマネージャのボリューム上で順次入出力とランダム入出力のどちらが多用されるのかわからない場合は、性能のチューニングに関する以下の手法を適用しないでください。 実装が適切でないと、性能が低下することがあります。

以下に示す最適化のための手法では、RAID 0 ボリュームを最適化するものとします。 通常は、RAID 0 ボリュームを最適化してからそのボリュームをミラー化して、最適な性能とデータの冗長性を同時に達成します。

ランダム入出力

データベースや汎用ファイルサーバーに使用されるランダム入出力環境では、すべてのディスクにおいて、入出力要求の応答にかかる時間が同じであることが望まれます。

たとえば、データベースアプリケーション用に 40G バイトの記憶領域があるとします。 10G バイトのディスクスピンドルを 4 つ使ってストライプ化を行っている場合、入出力がランダムで、ボリューム間で均一に分散されていれば、各ディスクの使用率が均一になり、通常、性能は向上します。

ランダム入出力性能を最大化するためには、ディスクの使用率を 35 パーセント以下に抑えるようにします (iostat コマンドで調べることができる)。 ディスクの使用率が定常的に 65 パーセントを超える場合には問題となります。 90 パーセントを超える場合には重大な問題が発生します。 このような問題を解決するためには、さらに多くのディスク (スピンドル) を追加して、新しい RAID 0 ボリュームを作成する必要があります。


既存のボリュームにディスクを追加するだけでは、性能を向上することはできません。 適切なパラメータを設定して新しいボリュームを作成し、性能の最適化を図る必要があります。


データをすべてのディスクに分散する場合には、飛び越し値のサイズは重要ではありません。 一般的な入出力要求よりも大きい飛び越し値を指定するだけで十分です。

順次アクセス入出力

飛び越し値を通常の入出力要求のサイズよりも小さく設定することによって、構成を最適化することにより、順次入出力環境の利点を活用することができます。このような環境の例として、テーブル全体のスキャンが頻繁に行われる DBMS サーバーや、データ入出力が非常に多い NFS サーバーなどが挙げられます。

たとえば、通常の入出力要求のサイズが 256K バイトで、ストライプが 4 スピンドルに渡っているとします。 この場合の適切なストライプユニットサイズは 256K バイト / 4 = 64K バイトまたはそれ以下です。

この場合には、通常の入出力要求が複数のディスクスピンドルに分散されるため、順次入出力の帯域幅が増加します。


順次アクセスでは、シーク時間と回転待ち時間は実質的にゼロです。 順次入出力の最適化では、ディスクの内部転送速度が最も重要な要素になります。


順次アプリケーションの通常の入出力サイズには大きい値を使用します (128K バイト以上、場合によっては 1M バイト以上)。 ここでは、通常の入出力要求のサイズが 256K バイトで、ストライプが 4 ディスクスピンドルに渡っているとします。 256K バイト / 4 = 64K バイトであるため、 適切な飛び越し値は 32 から 64K バイトとなります。