ECSのtask定義のメモリとCPUをチューニングするときのメモ
メモリ制限
メモリは「ハード制限」と「ソフト制限」があり、2つの値を設定するとき必ず「ハード制限>ソフト制限」である必要がある。
- 「ソフト制限」は、コンテナに予約するメモリ量(MiB)
- 「ハード制限」は、メモリ使用量がこの値を超えると強制的にコンテナが終了するメモリ量(MiB)
- ハード制限を設定することで一時的にメモリ使用量がバーストしても使うことができる
適正値がわからない場合、以下の範囲から始めると良いと言われている。
ECS ではウェブアプリケーション用に 300〜500 MB から始めることをお勧めします。
CPUユニット
チューニング方法
ECSのメモリとCPUのメトリクスは、サービスごとに監視しているので、Amazon開発ガイドに記載されている「サービス使用率」を使ってメモリとCPUをチューニングしていく。
それぞれ、現在のサービス使用率、タスクに割り当てているメモリ、CPU、サービスのタスク数が分かっているので、現在の使用率を算出することが可能である。
# CPU使用率が90%で割り当てCPUユニットが500、タスク数が2出会った場合 90=(100x/500*2) x=900 つまり、1つのタスクあたり450CPUユニット使用していることがわかる # メモリ使用率 メモリ使用率も算出の仕方はCPUと同様 ソフト制限を指定した場合、メモリ使用率を求めるためにその制限値が計算に使われ、ハード制限を指定した場合はハード制限に設定したメモリ量が使われる
使用率をどの程度に抑えたいかで割り当てるCPUユニットやメモリ量を変更することができる。