Cloud Run for Anthos では、各リビジョンが自動的にスケーリングされます。これにより、すべての受信リクエストを処理するのに必要なコンテナ インスタンス数に調整されます。
リクエストを処理するコンテナ インスタンスが増えると、CPU とメモリの使用量も増加し、コストも高くなります。新しいコンテナ インスタンスの起動が必要になると、リクエストの処理に時間がかかり、サービスのパフォーマンスが低下する可能性があります。
Cloud Run for Anthos では、同時実行の設定を使用して、特定のコンテナ インスタンスで同時に処理できるリクエストの最大数を指定できます。これにより、より細かい制御を行うことができます。
同時実行の値
デフォルトでは、Cloud Run for Anthos コンテナ インスタンスは同時に最大 80 件のリクエストを受信できます。Cloud Functions などの Functions-as-a-Service(FaaS)ソリューションの同時実行数は 1 に固定されています。
デフォルトの同時実行の値を使用する必要がありますが、必要に応じて最大同時実行数を減らすことができます。たとえば、コードで並行リクエストを処理できない場合は、同時実行を 1
に設定します。
指定された同時実行の値が最大値になります。インスタンスの CPU の使用率がすでに高い場合、Cloud Run for Anthos は特定のコンテナ インスタンスにこの値以上のリクエストを送信しません。
次の図は、同時実行の受信リクエストの処理に必要なコンテナ インスタンスの数に、同時実行の設定がどのように影響するかを示しています。
同時実行を 1 つのリクエストに制限する場合
実行中のコンテナ インスタンスに同時に 1 つのリクエストしか送信されないように、同時実行を制限することもできます。次のような場合には、この設定を検討する必要があります。
- 1 つのリクエストで利用可能な CPU またはメモリのほとんどを使用する場合。
- たとえば、コンテナが 2 つのリクエストを共有できないグローバルな状態に依存している場合。コンテナ イメージは複数のリクエストを同時に処理するように設計されていません。
受信リクエストが急増したときに多くのコンテナ インスタンスを起動する必要があるため、同時実行を 1
に設定するとスケーリングのパフォーマンスが低下する可能性があります。
事例紹介
次の指標は、最大同時実行が 1 に設定されている Cloud Run for Anthos サービスに対して、400 のクライアントが 1 秒あたり 3 回のリクエストを行っていることを示しています。上の緑の線は時間の経過に伴うリクエスト数を示し、下の青い線はリクエストの処理を開始したコンテナ インスタンスの数を示しています。
次の指標は、最大同時実行が 80 に設定されている Cloud Run for Anthos サービスに対して、400 のクライアントが 1 秒あたり 3 回のリクエストを行っていることを示しています。上の緑の線は時間の経過に伴うリクエスト数を示し、下の青い線はリクエストの処理を開始したコンテナ インスタンスの数を示しています。同じリクエスト量を処理するために必要なインスタンスが、はるかに少ないことに注意してください。
次のステップ
Cloud Run for Anthos サービスの同時実行を管理する方法については、同時実行の設定をご覧ください。
同時実行の設定を最適化する方法については、同時実行を調整する際のヒントをご覧ください。