sarのstealってなんじゃらほい?(AWSのt2系インスタンス限定のお話)

sarのstealってなんじゃらほい?(AWSのt2系インスタンス限定のお話)

ここ最近はずっとAWSのコンソールとイチャコラしてるのですが、弊社がリリースしたEAPが実運用に耐えられるかどうかという負荷テストを行っていた際に珍しい(?)ものが見れました。
EAPは標準構成の場合サーバはAWSのt2系インスタンスで稼働するのですが、このt2系インスタンスというのは普段はあまりCPU使用率が高くなく、ここぞという時に短時間であれば高CPU使用率もこなせるというWebサーバに向いたインスタンスなんですね。
で、JMeterでもりもりと負荷をかけていたところ急にレスポンスが悪くなり、sarコマンドで見ていたサーバリソースに見慣れない物が。
まぁ、タイトルで書いてしまってるんですが、こんな感じですね。

09:09:04 AM     CPU     %user     %nice   %system   %iowait    %steal     %idle
09:09:05 AM     all     32.35      0.00      0.00      0.00     67.65      0.00
09:09:06 AM     all     32.78      0.00      0.00      0.00     67.22      0.00
09:09:07 AM     all     32.79      0.00      0.00      0.00     67.21      0.00
09:09:08 AM     all     32.50      0.00      0.42      0.00     67.08      0.00
09:09:09 AM     all     32.64      0.00      0.00      0.00     67.36      0.00
09:09:10 AM     all     32.92      0.00      0.00      0.00     67.08      0.00
09:09:11 AM     all     32.35      0.00      0.00      0.00     67.65      0.00
09:09:12 AM     all     32.78      0.00      0.00      0.00     67.22      0.00
09:09:13 AM     all     32.77      0.00      0.00      0.00     67.23      0.00
09:09:14 AM     all     32.50      0.00      0.00      0.00     67.50      0.00
09:09:15 AM     all     32.92      0.00      0.00      0.00     67.08      0.00
09:09:16 AM     all     32.50      0.00      0.00      0.00     67.50      0.00
09:09:17 AM     all     32.92      0.00      0.00      0.00     67.08      0.00

普段負荷テストをする際には主に%user%system%iowait辺りしか気にしてなかったのですが、ここに来て急に%stealというところが上昇しました。
これ、「ここぞという時」が長く続きすぎたせいで「頑張れなくなった分」なんですね。
具体的に言うとインスタンスサイズごとに決められた「ベースラインパフォーマンス」から「バースト」しすぎて「CPUクレジット」を使い切った状態になります。

はい、綺麗にすこーんと使い切っております。
で、これの困ったところはAWSのCloudWatch等でCPU使用率だけ見ていると気が付かないって事なんですね。
時間軸がCPUクレジットと違いますが、以下の画像を見てください。

最初はCPUを100%使い切れているのですが、その後は70%くらいまでしか使えていません。
この時点でCPUクレジットをほぼ使い切ってしまい、最大値までバーストできなくなってしまっている状態です。
つまりCloudWatch等のCPUリソースしか見ていないと、「CPUにはまだまだ余裕があるのにレスポンスが悪い」ように見えてしまうということになります。

こんな感じでCPU使用率とCPUクレジットの残高を同時に見るようにしておくと良いですね。
グラフを見るとバーストしすぎて残高がゼロになっていく様が良くわかりますね・・・。
t2系インスタンスで負荷テストをする際にはCPUクレジットの残高も意識する必要があるというお話でした。

TAG

  • このエントリーをはてなブックマークに追加
やまま
スペシャリスト やまま yamama

マンガとアニメとゲームから錬成された宇宙大好きエンジニア。 軌道エレベーターで行ける静止軌道上のコロニーに住まいを移し、ゲームやってマンガ読んでアニメ見て爆睡、ゲームやってマンガ読んでアニメ見て爆睡、という生活を夢見ながら今日もコードを書き続けるのだった。