今月発表された ElastiCache for Redis のリリースで,新 CloudWatch メトリクス EngineCPUUtilization
が追加された.
今まで
もともと Redis はシングルコアで稼働するため,例えば vCPU 4 を搭載する cache.r4.xlarge
を使う場合,CPUUtilization
の 25% で「実質 100%」を意味する.この仕様を理解できていないと,Redis の CPU 負荷を見逃してしまう可能性もあり,よく知られていると思う.Black Belt 資料にも記載がある.
www.slideshare.net
これから
今後はシングルコアに対応したメトリクス EngineCPUUtilization
を使えば,vCPU を気にせずにモニタリングすることができる.監視設定で計算をする必要もなくなり,とにかく便利!
新しいメトリックスは以前存在した CPUUtilization メトリックスに加えられ、その他のオペレーティングシステムや管理プロセスを含むサーバーインスタンスの CPU の使用状況の全体をまとめて示します。新しい EngineCPUUtilization と以前の CPUUtilization メトリックスの両方をまとめて使用して、お使いの Redis 環境の CPU 使用状況の詳細を理解されることをお勧めいたします。
実際に CloudWatch で確認をしてみた.
注意点は ElastiCache for Redis クラスタを構築した時期によって EngineCPUUtilization
を取得できないことで,日本語のドキュメントには「2017/11/01 以降」と書かれていた.ただし,英語のドキュメントには「February 14, 2017 19:58 (UTC)」と書かれていて,そこそこズレているので,実際に確認してみるのが良さそう.
Mackerel AWS Integration
昨日のリリースで,Mackerel AWS Integration でも EngineCPUUtilization
を取得できるようになった.ElastiCache は Mackerel でモニタリングをしているので,すぐにリリースしてもらえて助かった.
実際に Mackerel で確認をしてみた.
まとめ
- ElastiCache for Redis のメトリクスに
EngineCPUUtilization
が追加された - 今後は vCPU を気にせずにモニタリングすることができる
- Mackerel AWS Integration でも,既にメトリクスが取得できるようになっている