AWSのT系インスタンスは、普通のインスタンスとは少し異なります、癖があります。そのため、
- 外部要因で不可状況が予想しずらい
- 一般公開され性能制限した時のユーザーイメージが悪い場合
は、T系インスタンスは避けた方が良いかもしれません。安いんですけどね。
もしも使う使う場合、その特性を理解したうえで使う必要があります。
レジュメ
前提条件・環境
- t2.mediumインスタンス利用
- Windows Server 2016
で、CPUに100%負荷をかけつづけ、CPUクレジットを使い切ってみました。
そして、CPUクレジット特性のイメージを体験・体感してみました。
Windows OS上ではどのように見え、どのようにCPUクレジットが使い切ったことがわかるのでしょうか?
結論、OS上CPUは100%ですが、実際はAWS上の裏でCPU性能が制限されている
AWSのCPUクレジットを使い切った状態の、Windows OS上のタスクマネージャーCPU使用率です。
CPUクレジットを使い切っていますが、Windows OS上ではCPU100%のままです。そして、「応答なし」になりやすくなります、、、
つまり、Windows OS上ではAWSのCPUクレジットを使い切ったことは明確にわかりませんが、「応答なし」になりやすいです。
リソースモニターはよくよく見るとCPUが100%で張り付いているとは言い難い
タスクマネージャーではCPUは100%なのですが、リソースモニターではCPUが100%に張り付いているようには見えませんでした。
この状態が、CPUクレジットが使い切られた状態ですが、やはり、Windows OS上ではCPUクレジットが使い切られた状態なのか、普通の状態なのか区別がつかないですね。
CPUを 100%使用したい状態なのに、CPUが100%使用できない状態ですね。
CPUクレジットが無くなる・クレジットが使い切られたのはCPUCreditBalanceでわかる!AWS CloudWatchメトリクス
CPUクレジットが使い切られたのは、やはりAWSコンソール上でしかわからないですね。
AWSコンソール上の、CloudWatchのCPUCreditBalanceメトリクスを見ますとわかります。
CPUクレジットが無くなると CPUCreditBalance が0になります。(オレンジ色グラフ)
CPUクレジットが使用しきられると、AWS上でCPU性能は30%に制限されていることがわかります。(緑色グラフ)
上記のグラフの間は(15:45まで)、Windows OS上ではずっとCPUが100%に負荷をかけ続けた状態です。
今回、Windows OSに負荷をかけた状態はCPUストレスツールを使い作りました。
CPUへテスト的に負荷をかけるストレスツールには、マイクロソフトサイトからダウンロードできる、CPUStress.exeを利用しました。
CPUStress - Windows Sysinternals | Microsoft Docs
CPU以外にも負荷テストをしたい時に利用できるWindowsストレスツールは以下に紹介されています。
Tools To Simulate CPU / Memory / Disk Load – The Way I See It