Cloud Run for Anthos でコンテナ インスタンスが使用するメモリの上限を設定する方法について説明します。
メモリ使用量について
許容されるメモリの上限を超える Cloud Run for Anthos コンテナ インスタンスは終了します。
コンテナ インスタンスで使用可能なメモリは次のとおりです。
- アプリケーションの実行可能ファイルの実行(実行可能ファイルをメモリに読み込む必要があるため)
- アプリケーション プロセスでのメモリの割り当て
- ファイル システムへのファイルの書き込み
デプロイされたコンテナ イメージのサイズは、使用可能なメモリにはカウントされません。
メモリの最大量
構成できる最大メモリ容量は GKE クラスタの構成によって制限されます。
メモリの最適化
サービスのピーク時のメモリ要件は、(標準メモリ)+(リクエストあたりのメモリ)×(サービスの同時実行)によって算定できます。
また、次の点に注意してください。
サービスの同時実行数を増やす場合は、ピーク時の使用状況を考慮してメモリ制限も上げる必要があります。
サービスの同時実行数を減らす場合は、メモリ使用量を節約するため、メモリ制限も下げることを検討してください。
リクエストごとのメモリ使用量を最小限に抑える方法については、グローバル変数に関する開発のヒントをご覧ください。
メモリ上限の設定と更新
構成を変更すると、新しいリビジョンが作成されます。明示的に更新しない限り、以降のリビジョンでも、この構成が自動的に設定されます。
新しいサービスをデプロイするか、既存のサービスを更新してリビジョンをデプロイする際に、Google Cloud コンソール、Google Cloud CLI、または YAML ファイルを使用してメモリの上限を設定できます。
Console
Google Cloud コンソールで Cloud Run for Anthos に移動します。
デプロイ先の新しいサービスを構成する場合は、[サービスの作成] をクリックします。既存のサービスを構成する場合は、そのサービスをクリックし、[新しいリビジョンの編集とデプロイ] をクリックします。
[詳細設定] で [コンテナ] をクリックします。
[割り当てられたメモリ] プルダウン リストから目的のメモリサイズを選択します。
[次へ] をクリックして、次のセクションに進みます。
[このサービスをトリガーする方法の構成] セクションで、サービスを呼び出すために使用する接続を選択します。
[作成] をクリックしてイメージを Cloud Run for Anthos にデプロイし、デプロイの完了を待ちます。
コマンドライン
既存のサービスの場合は、
--memory
パラメータを指定してgcloud run services update
コマンドを実行し、メモリの上限を更新します。gcloud run services update SERVICE --memory SIZE
以下のように置き換えます。
- SERVICE は、実際のサービスの名前に置き換えます。
- SIZE は、目的のメモリサイズに置き換えます。サイズの書式は、固定小数点または浮動小数点の後に単位が続きます(
G
、M
、K
はそれぞれ GB、MB、KB を表します)。また 2 の累乗で表すこともできます(Gi
、Mi
、Ki
はそれぞれ GiB、MiB、KiB を表します)。
新しいサービスの場合は、
--memory
パラメータを指定してgcloud run deploy
コマンドを実行し、メモリの上限を設定します。gcloud run deploy SERVICE --image=IMAGE_URL --memory SIZE
以下のように置き換えます。
- SERVICE は、実際のサービスの名前に置き換えます。
- IMAGE_URL は、コンテナ イメージへの参照(
gcr.io/myproject/my-image:latest
など)に置き換えます。 - SIZE は、目的のメモリサイズに置き換えます。サイズの書式は、固定小数点または浮動小数点の後に単位が続きます(
G
、M
、K
はそれぞれ GB、MB、KB を表します)。また 2 の累乗で表すこともできます(Gi
、Mi
、Ki
はそれぞれ GiB、MiB、KiB を表します)。
YAML
--format=export
フラグを使用して、gcloud run services describe
コマンドで既存のサービスの構成を YAML ファイルにダウンロードできます。次に YAML ファイルを変更し、gcloud beta run services replace
コマンドを使用してこれらの変更をデプロイします。指定した属性のみを変更する必要があります。
ローカル ワークスペースの
service.yaml
という名前のファイルにサービスの構成をダウンロードします。gcloud run services describe SERVICE --format export > service.yaml
SERVICE は、Cloud Run for Anthos サービスの名前に置き換えます。
ローカル ファイルで
memory
属性を更新します。apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE_NAME spec: template: spec: containers: – image: IMAGE_URL resources: limits: memory: SIZE
SIZE は、目的のメモリサイズに置き換えます。書式は、固定小数点または浮動小数点の後に単位が続きます(
G
、M
、K
はそれぞれ GB、MB、KB を表します)。また 2 の累乗で表すこともできます(Gi
、Mi
、Ki
はそれぞれ GiB、MiB、KiB を表します)。次のコマンドを使用して、サービスを新しい構成に置き換えます。
gcloud beta run services replace service.yaml