AWSでCPU使用率が低いのに性能が出ていないときの原因

※当サイトではアフィリエイト広告を利用しています

AWSを利用していて、全然性能が出なくて困った事象が起きました。

サーバの状態を監視

さっそくサーバの状態を監視。
しかし、CPUもメモリも数十%をさまよっていて全然余裕がある、という状態でした。

アクセス数が激増したわけでもなく、性能が出ない。
何でだろう?と思って調査をしてみました。

原因はCPUクレジット

色々と調査していたところ、「CPUクレジット」というものを見つけました。

CPUクレジットとは、インスタンスタイプが「T2」「T3」のEC2、RDSにおいて、自動的にCPU処理能力がスケールアップした際に、使われていく貯金のようなもののようです。

このCPUクレジットが枯渇した場合、サーバはベースラインまでの性能しか力を発揮できない、ということが分かりました。

パッと見ではCPU使用率が全然使っていない状態なので、余裕があるように見えますが、実際はCPUクレジットが底をついていた影響で、最低限のパフォーマンスしか出ない状態になっていました。

インスタンスタイプに応じて、ベースラインや蓄積可能なクレジット量、1時間あたりに受け取るクレジット量は異なるので、よく確認しておくことが重要です。
https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/burstable-credits-baseline-concepts.html

また、CPUクレジットはCloudWathで監視することができるので、危ないかな?という懸念がある場合は、チェックしておくことをオススメします。
https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/burstable-performance-instances-monitoring-cpu-credits.html

コメント