セットアップ私はt2.small EC2インスタンスの束を実行していて、 thumbor という画像処理ライブラリをホストしています。 -フライ画像のサイズ変更。オリジナルはS3からロードされます。インスタンスの前にECロードバランサーがあります。サーバーにNewRelicサーバーモニタリングをインストールしています。
問題ランダムな時間に、私のサーバーは突然非常に高い平均を経験し始めます。応答時間。 New Relicの統計を見ると、私が見る唯一のことは、サーバーのCPUが急上昇し、「盗まれた」CPUを一貫して報告していることです。
私のサーバーは十分に容量が大きいようで、その間にスループットが極端に急上昇するわけではありません。
サーバーを再度停止/起動すると、気づきました。その後、盗まれたCPUは消え、再び正常に動作します-次回まで-数時間から数日かかる可能性があります。
なぜこれが起こっているのですか、そして私は何ができますか?
Amazonのtシリーズのインスタンスは、CPU使用率にクォータシステムを使用しています。割り当てに達すると、盗まれた割合が増加し始めます。それについてできることはあまりありません。それは製品の構造です。
他の人が言っているように、あなたは CPUクレジット を使い果たしている可能性が非常に高いです。基本的に、T2インスタンスでは、CPUの一部、t2.smallの場合はコアの20%を取得し、最大で1つまたは2つのコア(インスタンスタイプに応じて)にバーストすることができます。 CPUクレジット。また、ほとんどの場合、ロードバランサーの背後でTインスタンスを使用しないでください。パフォーマンスが変動するため、診断が困難な奇妙な問題が発生する可能性があります。
クレジットが不足している場合は、より大きなTインスタンスに移動するか、コアへの一貫したアクセス権を持つインスタンスに移動する必要があります。 C(計算最適化)またはM(汎用)がより適切です。
CloudWatchでCPUクレジットを監視する 。これは、より大きなTインスタンスとC/Mインスタンスのどちらを使用するかを決定するのに役立ちます。