翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Amazon EBSボリュームのパフォーマンス
I/O 特性やインスタンスとボリュームの設定など、いくつかの要因が Amazon のパフォーマンスに影響を与える可能性がありますEBS。Amazon EBSと Amazon EC2の製品詳細ページのガイダンスに従うと、通常、良好なパフォーマンスを達成できます。ただし、ピークパフォーマンスを実現するには、多少のチューニングを行う必要な場合があります。最適な設定を決定するには、ベンチマーキングに加えて、実際のワークロードからの情報でパフォーマンスをチューニングすることをお勧めします。EBS ボリュームの操作の基本を学習したら、必要な I/O パフォーマンスと、それらの要件を満たすために Amazon EBSのパフォーマンスを向上させるためのオプションを確認することをお勧めします。
AWS EBSボリュームタイプのパフォーマンスに対する の更新は、既存のボリュームにすぐには反映されない場合があります。古いボリュームで完全なパフォーマンスを確認するためには、最初に ModifyVolume
アクションの実行が必要になる場合があります。詳細については、「Elastic EBS Volumes オペレーションを使用して Amazon ボリュームを変更する」を参照してください。
内容
Amazon EBSのパフォーマンスに関するヒント
これらのヒントは、さまざまなユーザーシナリオでEBSボリュームから最適なパフォーマンスを得るためのベストプラクティスを示しています。
最適化EBSインスタンスを使用する
にEBS最適化されたスループットをサポートしていないインスタンスでは、ネットワークトラフィックはインスタンスとEBSボリューム間のトラフィックと競合する可能性があります。EBSに最適化されたインスタンスでは、2 つのタイプのトラフィックは別々に保持されます。にEBS最適化されたインスタンス設定の中には、追加料金が発生するもの (C3, R3、M3 など) もあれば、常に に追加料金なしでEBS最適化されるもの (M4, C4, C5、D2 など) もあります。詳細については、「Amazon EBS 最適化」を参照してください。
インスタンス帯域幅を設定する
サポートされているインスタンスタイプでは、帯域幅の重み付けを使用して Amazon EBS帯域幅を 25% 増やすようにインスタンスebs-1
帯域幅の重みを設定できます。この機能を使用すると、 EBSと VPCネットワーク間のインスタンスのネットワークリソース割り当てを最適化できるため、I/O を多用するワークロードEBSのパフォーマンスが向上する可能性があります。詳細については、「設定可能なインスタンス帯域幅の重み付け」を参照してください。
パフォーマンスの計算方法を理解する
EBS ボリュームのパフォーマンスを測定するときは、関連する測定単位とパフォーマンスの計算方法を理解することが重要です。詳細については、「Amazon EBS I/O の特性とモニタリング」を参照してください。
ワークロードを理解する
EBS ボリュームの最大パフォーマンス、I/O オペレーションのサイズと数、各アクションの完了にかかる時間には関係があります。これらの各要因 (パフォーマンス、I/O、レイテンシー) は相互に影響を与えます。また、アプリケーションが異なると、影響を受ける要因もさまざまに異なります。詳細については、「Amazon EBSボリュームのベンチマーク」を参照してください。
スナップショットからボリュームを初期化する際のパフォーマンス低下に注意する
スナップショットから作成された新しいEBSボリュームの各データブロックに最初にアクセスすると、レイテンシーが大幅に増加します。このパフォーマンスヒットは、以下のいずれかの方法で回避できます。
-
各ブロックへのアクセスが、ボリュームの本番環境への移行前に起こるようにする。このプロセスは、初期化と呼ばれます (以前は事前ウォーミングと呼ばれていました)。詳細については、「Amazon EBSボリュームの初期化」を参照してください。
-
スナップショットで高速スナップショット復元を有効にすると、スナップショットから作成されたEBSボリュームが作成時に完全に初期化され、プロビジョニングされたすべてのパフォーマンスが即座に提供されます。詳細については、「Amazon EBS 高速スナップショット復元」を参照してください。
HDD パフォーマンスを低下させる要因
スループット最適化 HDD (st1
) またはコールド HDD (sc1
) ボリュームのスナップショットを作成すると、スナップショットの進行中にボリュームのベースライン値までパフォーマンスが低下する可能性があります。この動作は、これらのボリュームタイプに固有です。パフォーマンスが制限される他の要因としては、インスタンスでのサポート範囲を超えるスループットの強要、スナップショットから作成したボリュームの初期化中のパフォーマンス低下、ボリュームに対する大量の小さなランダム I/O などがあります。HDD ボリュームのスループットの計算の詳細については、「」を参照してくださいAmazon EBSボリュームタイプ。
アプリケーションから送られる I/O リクエスト数が十分でない場合も、パフォーマンスに影響します。これは、ボリュームのキュー長や I/O サイズを確認することで監視できます。このキュー長とは、アプリケーションからボリュームへの I/O リクエストのうち処理待ちのものの数です。整合性を最大限に高めるために、HDD-backed ボリュームは、1 MiB のシーケンシャル I/O を実行するときに、キューの長さ (最も近い整数に四捨五入) を 4 以上に維持する必要があります。 ボリュームの一貫したパフォーマンスを確保する方法の詳細については、「」を参照してください。 Amazon EBS I/O の特性とモニタリング
st1
および sc1
(Linux インスタンスインスタンスのみ) で高いスループットの読み取りが多いワークロードに先読みを増やす
一部のワークロードでは読み取りが多く、オペレーティングシステムのページキャッシュを通じて (例えば、ファイルシステムから) ブロックデバイスへのアクセスが行われます。この場合、最大スループットを実現するには、先読みを 1 MiB に設定することをお勧めします。これは、HDDボリューム per-block-deviceにのみ適用される設定です。
ブロックデバイスに対する現在の先読み値を調べるには、次のコマンドを使用します。
$
sudo blockdev --report /dev/
<device>
ブロックデバイス情報は次の形式で返されます。
RO RA SSZ BSZ StartSec Size Device
rw 256 512 4096 4096 8587820544 /dev/<device>
表示されているデバイスについては、先読み値として 256 (デフォルト値) が報告されています。この数値にセクターサイズ (512 バイト) を乗算すると、先読みバッファのサイズ (この場合は 128 KiB) を得ることができます。バッファ値を 1 MiBに設定するには、次のコマンドを使用します。
$
sudo blockdev --setra 2048 /dev/
<device>
最初のコマンドをもう一度実行して、先読み設定が 2,048 になったことを確認します。
この設定は、ワークロードがサイズの大きなシーケンシャル I/O で構成される場合にのみ使用してください。ワークロードの内容として、サイズの小さなランダム I/O がほとんどであれば、この設定を使用すると逆にパフォーマンスが低下します。一般的に、ワークロードが主に小さい I/O またはランダム I/O で構成されている場合は、 st1
または ボリュームではなく汎用 SSD (gp2
および gp3
) sc1
ボリュームを使用することを検討する必要があります。
最新の Linux カーネルを使用する (Linux インスタンスのみ)
間接記述子がサポートされている最新の Linux カーネルを使用します。Linux カーネル 3.8 以降では、このサポートと現行世代のEC2インスタンスがサポートされています。平均 I/O サイズが 44 KiB 前後であれば、間接記述子がサポートされていないインスタンスやカーネルを使用している可能性があります。Amazon CloudWatch メトリクスからの平均 I/O サイズを取得する方法については、「」を参照してくださいAmazon EBS I/O の特性とモニタリング。
st1
または sc1
ボリュームで最大スループットを達成するには、256 の値を、xen_blkfront.max
パラメータ (Linux カーネルバージョン 4.6 未満の場合)または xen_blkfront.max_indirect_segments
パラメータ (Linux カーネルバージョン 4.6 以降の場合) に適用することを推奨します。適切なパラメータは、OS の起動コマンドラインで設定できます。
例えば、以前のカーネルAMIを持つ Amazon Linux では、 にあるGRUB設定のカーネル行の末尾に追加できます/boot/grub/menu.lst
。
kernel /boot/vmlinuz-4.4.5-15.26.amzn1.x86_64 root=LABEL=/ console=ttyS0 xen_blkfront.max=256
後のカーネルの場合、コマンドは次のようになります。
kernel /boot/vmlinuz-4.9.20-11.31.amzn1.x86_64 root=LABEL=/ console=tty1 console=ttyS0 xen_blkfront.max_indirect_segments=256
この設定を有効にするには、インスタンスを再起動する必要があります。
詳細については、「準仮想化 GRUBの設定AMIs」を参照してください。他の Linux ディストリビューション、特にGRUBブートローダーを使用しないディストリビューションでは、カーネルパラメータを調整するために別のアプローチが必要になる場合があります。
EBS I/O 特性の詳細については、このトピックの「Amazon EBS: パフォーマンスを考慮した設計
0 RAID を使用してインスタンスリソースの使用率を最大化する
一部のインスタンスタイプでは、1 つのEBSボリュームにプロビジョニングできる I/O スループットよりも多くの I/O スループットを実現できます。RAID 0 の設定で複数のボリュームを結合して、これらのインスタンスで使用可能な帯域幅を使用できます。詳細については、「Amazon EBS および RAID の構成」を参照してください。
Amazon EBSボリュームのパフォーマンスをモニタリングする
Amazon、ステータスチェック CloudWatch、詳細なパフォーマンス統計を使用して、Amazon EBSボリュームEBSのパフォーマンスをモニタリングおよび分析できます。詳細については、Amazon の Amazon CloudWatch メトリクス EBSおよびAmazon EBS の詳細なパフォーマンス統計を参照してください。