
データベースの仕様が適切かどうか把握しようとしています。以下は、 SQL Server の t3.xlarge インスタンスのWriteIOPS
、CPUCreditBalance
およびを示すグラフですBurstBalance
。WriteIOPS レートがほぼ一定であることを考えると、あと 15 時間ほどで を消費するようですBurstBalance
。ただし、 はCPUCreditBalance
着実に増加しています。
15時間以内に何が起こるのか - データベースは制限されるのか?私は指標を理解しようとしたここで定義そしてここで説明しかし、この 2 つのバランスの違いが正確にはわかりません。この 2 つのバランス メトリックの意味を誰か明確に説明してもらえますか?
答え1
CPUCreditBalance
これらはBurstBalance
2 つの無関係な指標です。
T タイプのインスタンスには、がありますCPUCreditBalance
。CPU を継続的に使用すると、クレジット残高が枯渇し、マシンがスロットリングされます。T タイプのインスタンスは、断続的なワークロードにのみ適しています。CPU を少量でも消費し続けるプロセス (誤ったプロセスであっても) は、サイズが適切でない場合、システムを機能不全に陥らせる可能性があります。表ここt3.xlarge は、クレジットを獲得することも失うこともなく、vCPU あたり 40% のベースラインで実行できることを示しています。サーバーをそのレート以上で実行し続けるものはすべて、システムのクレジットが不足してベースライン速度に制限されるまでクレジットを消費します。基本的に、システムは 40% の CPU 使用率に制限されます。
一方、BurstBalance
EC2 または RDS インスタンスをサポートする EBS ストレージ ボリュームの機能です。標準の gp2 ストレージ ボリュームをプロビジョニングすると、パフォーマンスのベースラインが提供されます。ただし、そのパフォーマンスを超えてバーストするにはクレジットを獲得できます。ボリュームが大きいほど、ベースライン パフォーマンスが大きくなります。ディスクを消費するプロセス (読み取りまたは書き込み) がある場合、残高がなくなるまでベースライン パフォーマンスよりもはるかに高速に実行されます。その後、ベースライン パフォーマンスに調整されます。詳細については、ここ。
グラフには、キー値が欠落しており、それらはCPUUtilization
と ですReadIOPS
。ディスクへの読み取りまたは書き込み IOPS が持続すると、バースト バランスが減少することがわかります。バースト バランスがなくなると、ディスクのベースライン パフォーマンスに制限されます。また、CPU 使用率が持続すると、クレジット バランスが減少することがわかります。クレジット バランスがなくなると、CPU はベースライン パフォーマンスに調整されます。
ワークロードによっては、ニーズに合わせてインスタンスまたはボリュームのサイズを調整する必要がある場合があります。または、信頼性が高く一貫した CPU パフォーマンスを得るために、非バースト可能なインスタンス タイプに変更する必要がある場合もあります。または、信頼性が高く一貫したディスク パフォーマンスを得るために、プロビジョニングされた iops ストレージ ボリュームに変更する必要がある場合もあります。
答え2
24時間365日負荷が一定であれば、BurstBalance(EBSディスク)が不足します。これについては、良いブログ記事があります。ここただし、営業時間外などに負荷が軽減されると、バースト バランスは回復する可能性があります。
GP2 / GP3 ディスクをお持ちの場合は、バースト バランスがより速く増加するため、ディスク サイズを増やすことをお勧めします。IO1 / IO2 の場合は、割り当てられた IOPS を増やします。