このトピックでは、高性能ディスクの概念とパフォーマンスについて説明し、適切なディスクを選択するのに役立ちます。
特徴
高性能ディスクは、ApsaraDB RDS Custom インスタンスでサポートされる新しいストレージタイプです。エンタープライズ SSD (ESSD) のすべての特徴と互換性があり、I/O パフォーマンスバーストおよび 16 KB アトミック書き込み機能をサポートします。これらの特徴により、より効率的で柔軟なストレージソリューションが提供されます。
I/O パフォーマンスバースト
有効化方法: この機能は高性能ディスクに統合されており、デフォルトで有効になっています。追加の構成は必要ありません。
コスト: この機能は無料で提供されます。
最大 IOPS: I/O バースト機能により、ディスクの IOPS がベースラインパフォーマンスの制限を超えることができます。ピーク時には、IOPS は最大 1,000,000 に達することがあります。
メリット:
この機能は、ピーク時のワークロードのバーストを処理するための I/O 能力を向上させます。
この機能は、メモリ I/O バーストをサポートします。これにより、特定のシナリオで I/O 帯域幅やメモリなどの追加リソースを動的に割り当て、短期間の重いワークロードを効果的に処理できます。
16 KB アトミック書き込み
有効化方法: この機能を有効にするには、「付録: 16 KB アトミック書き込みを有効にする」をご参照ください。
コスト: この機能は無料で提供されます。
コアテクノロジー: doublewrite メカニズムは無効になっています。この機能は、チェックサムとログロールバックメカニズムを使用して、各データページ書き込みの原子性を確保し、書き込みプロセスを安全に簡素化します。
パフォーマンスの向上:
I/O 書き込みの削減: この機能は、ダーティページフラッシュプロセスを最適化し、インスタンスのディスク書き込みに必要な IOPS と帯域幅を大幅に削減します。
40% 以上の QPS 向上: この機能は、高同時実行シナリオにおけるインスタンスのクエリパフォーマンスを大幅に向上させます。テストの詳細については、「書き込み最適化パフォーマンステスト」をご参照ください。
高性能ディスクのパフォーマンス
高性能ディスクのストレージ容量 (GB) | ベースラインパフォーマンス (PL1 ESSD と同じ) |
100 GB <= ストレージ容量 < 1,000 GB | I/O 帯域幅: 125~350 MB/s IOPS: 6,800~50,000 |
1,000 GB <= ストレージ容量 < 2,000 GB | I/O 帯域幅: 350 MB/s IOPS: 50,000 |
2,000 GB <= ストレージ容量 < 4,000 GB | I/O 帯域幅: 350 MB/s IOPS: 50,000 |
4,000 GB <= ストレージ容量 < 16,000 GB | I/O 帯域幅: 350 MB/s IOPS: 50,000 |
16,000 GB <= ストレージ容量 < 64,000 GB | I/O 帯域幅: 350 MB/s IOPS: 50,000 |
付録: 16 KB アトミック書き込みを有効にする
16 KB アトミック書き込み機能を有効にするには、次の手順を実行します。
次のコマンドを実行してディスクをフォーマットします。
重要この操作により、ディスクからすべてのデータが消去されます。続行する前に、すべての重要なデータをバックアップしたことを確認してください。
mkfs.ext4 -m 0 -C 16K -O extent,uninit_bg,bigalloc -E lazy_itable_init=1 /dev/vdb-m 0: ファイルシステムの予約容量を無効にします。デフォルトでは、ディスク領域の 5% が予約されます。-C 16K: ブロックサイズを 16 KB に設定します。-O extent,uninit_bg,bigalloc: ext4 機能を有効にします:extent: 大きなファイルのストレージパフォーマンスを向上させます。uninit_bg: ファイルシステムチェックを高速化します。bigalloc: 大きなファイルの割り当て効率を最適化します。
-E lazy_itable_init=1: inode テーブルの初期化を遅らせて、フォーマット速度を高速化します。
次のコマンドを実行して、オペレーティングシステムの設定を調整します。すべてのストレージデバイスの
max_sectors_kbパラメーターを 64 (64 × 512 B = 32 KB) に設定します。for file in /sys/block/* do echo "before: $file/queue/max_sectors_kb = `cat $file/queue/max_sectors_kb`" echo 64 > $file/queue/max_sectors_kb echo "after: $file/queue/max_sectors_kb = `cat $file/queue/max_sectors_kb`" donemax_sectors_kb: 1 回の I/O リクエストで許可されるデータの最大量を定義します。MySQL パラメーターを調整します。
my.cnf設定ファイルに次のパラメーターを追加します。innodb_use_native_aio = ON innodb_doublewrite = OFF