プロビジョニングされた同時実行性のメモリー使用量および可用性の監視

OCI Functionsによるプロビジョニングされた同時実行性のために、メモリーの使用状況と可用性を監視する方法をご覧ください。

OCI Functionsには、リージョン内のすべての関数に対してプロビジョニングされた同時実行性に使用できるメモリーの合計量に対する制限があります。この制限にはprovisioned-concurrency-mbという名前が付けられ、プロビジョニングされた同時実行性に割り当てられるメモリーの最大量が指定されます。

「関数の制限」に示すように、プロビジョニングされたconcurrency-mbメモリー制限にはデフォルト値があります。メモリー容量を超過したときに以前にログに記録されたサポート・リクエストに応答して、テナンシでデフォルト値がすでに増加している可能性があります。

コンソールを使用して、リージョン内のプロビジョニングされたconcurrency-mbメモリー制限の現在の値を確認できます(プロビジョニングされた同時実行性の現在のメモリー制限の表示を参照)。

ファンクションの起動時に初期レイテンシを回避するために、プロビジョニングされた同時実行性により多くのメモリーが必要な場合は、プロビジョニングされた同時実行性MBメモリー制限を増やすリクエストを送信できます(サービス制限の引上げのリクエストを参照)。

プロビジョニングされた同時実行性MBのメモリー制限に達するのを待ってから、その要件に対処するかわりに、Oracle Cloud Infrastructure MonitoringとAllocatedProvisionedConcurrencyメトリックを使用して、プロビジョニングされた同時実行性に使用可能なメモリーの割り当て量を監視できます。AllocatedProvisionedConcurrencyメトリックの値は、割り当てられたメモリーの量であることに注意してください。プロビジョニングされた同時実行性に実際に使用されるメモリーの量は、常にAllocatedProvisionedConcurrencyメトリックの値以下です。詳細は、「同時ファンクション実行用に最近割り当てられたメモリー量の表示」を参照してください。

AllocatedProvisionedConcurrencyメトリックを使用して、プロビジョニングされた同時実行性メモリー割当てが定義したしきい値を超えた場合に通知するアラームを作成することもできます。詳細は、プロビジョニングされた同時実行性メモリー割当てしきい値アラームの作成を参照してください。

プロビジョニングされた同時実行性の現在のメモリー制限の表示

プロビジョニングされた同時実行性の現在のメモリー制限を表示するには:

  1. ナビゲーション・メニューを開き、「ガバナンスと管理」をクリックします。「テナンシ管理」で、「制限、割当ておよび使用状況」をクリックします。

  2. 「サービス」リストから「ファンクション」を選択します。
  3. 「範囲」リストからリージョンを選択します。

  4. 「コンパートメント」リストからルート・コンパートメントを選択します。

    provisioned-concurrency-mb制限は、プロビジョニングされた同時実行性の現在のメモリー制限を示します。

  5. (オプション)プロビジョニングされた同時実行性のために追加のメモリーをリクエストするには、provisioned-concurrency-mb制限の横にある「アクション」メニュー(アクション・メニュー)をクリックし、「サポート・リクエストを開く」を選択して、指示に従います。

プロビジョニングされた同時実行性のために最近割り当てられたメモリー量の表示

プロビジョニングされた同時実行性に対して最近割り当てられたメモリー量を表示するには:

  1. ナビゲーション・メニューを開き、「監視および管理」.をクリックします「モニタリング」で、「メトリック・エクスプローラ」をクリックします。

  2. 「開始時間」および「終了時間」フィールドを使用して、分析する代表的な期間を指定します。
  3. 「問合せ1」パネルで、次のように問合せを作成します。
    1. 「コンパートメント」で、ルート・コンパートメントを選択します。
    2. 「メトリック・ネームスペース」で、oci_faasを選択します。
    3. 「拡張モード」オプションを選択し、問合せコード・エディタで次のいずれかの問合せを入力します。
      • テナンシ内のすべてのファンクションに対してプロビジョニングされた同時実行性に割り当てられているメモリーの合計量を5分間隔で表示するには、指定した期間に次の問合せを入力します:
        AllocatedProvisionedConcurrency[5m].groupBy(resourceId).max().grouping().sum()
      • 特定のファンクションのプロビジョニングされた同時実行性に割り当てられたメモリーの合計量を5分間隔で表示するには、指定した期間に次の問合せを入力します。
        AllocatedProvisionedConcurrency[5m]{resourceId = "<function-OCID>"}.max()

        <function-OCID>は、ファンクションのOCIDです。例:

        AllocatedProvisionedConcurrency[5m]{resourceId = "ocid1.fnfunc.oc1.phx.aaaa____uxoa"}.max()
  4. 「チャートの更新」をクリックします

    チャートは、選択した期間中に、プロビジョニングされた同時実行性のために割り当てられたメモリーの量を更新し、表示します。

プロビジョニングされた同時実行性メモリー割当てしきい値アラームの作成

プロビジョニングされた同時実行性メモリー割当てが定義したしきい値を超えた場合に起動するアラームを作成するには:

  1. ナビゲーション・メニューを開き、「監視および管理」.をクリックします「モニタリング」で、「アラーム定義」をクリックします。

  2. 「アラームの作成」をクリックします。
  3. 「アラーム名」に、アラームのわかりやすい名前を入力します。機密情報の入力は避けてください。
  4. 「拡張モードに切替え」オプションを選択します。
  5. 「メトリック詳細」領域で、アラームを評価するメトリックを次のように指定します:
    1. 「コンパートメント」で、ルート・コンパートメントを選択します。
    2. 「メトリック・ネームスペース」で、oci_faasを選択します。
  6. 「トリガー・ルール」領域で、アラームを起動するために満たす必要がある条件を指定します:
    • トリガー遅延分数:アラームを起動するために条件を維持する必要がある分数を入力します。
    • アラームの重大度:アラームが起動したという通知に指定する重要度を選択します。
    • 問合せコード・エディタ:次のように、問合せを入力して、満たされるとアラームが起動する条件を定義します。

      • プロビジョニングされた同時実行性に対するメモリー割当てが一定量を超えた場合にアラームを起動する場合は、次の問合せを入力します。
        AllocatedProvisionedConcurrency[5m].grouping().sum() > <memory-threshold>

        <memory-threshold>は、しきい値として使用するメモリー量(MiB)で、この値を超えるとアラームが起動します。

        たとえば、プロビジョニングされた同時実行性に割り当てられたメモリー量が、プロビジョニングされた同時実行性に使用可能な合計メモリーの70%を超えた場合にアラームを起動できます。プロビジョニングされた同時実行性の合計メモリーが40 GB (つまり、40,960 MiB)の場合は、次の問合せを入力します。

        AllocatedProvisionedConcurrency[5m].grouping().sum() > 28672
      • 特定の関数に対してプロビジョニングされた同時実行性に対するメモリー割当てが一定量を超えた場合にアラームを起動する場合は、次の問合せを入力します。
        AllocatedProvisionedConcurrency[5m]{resourceId = "<function-OCID>"}.max() > <memory-threshold>
        ここでは:
        • <function-OCID>は、ファンクションのOCIDです
        • <memory-threshold>は、しきい値として使用するメモリー量(MiB)で、この値を超えるとアラームが起動します。

        たとえば、プロビジョニングされた同時実行性に割り当てられるメモリーの量が、プロビジョニングされた同時実行性で使用可能な合計メモリーの10%を超えた場合に、アラームを起動できます。プロビジョニングされた同時実行性に使用可能な合計メモリーが40 GB (つまり、40,960 MiB)の場合は、次の問合せを入力します。

        AllocatedProvisionedConcurrency[5m]{resourceId = "ocid1.fnfunc.oc1.phx.aaaa____uxoa"}.max() > 4096
  7. 「基本モードに切替え」オプションを選択します。
  8. 「アラーム通知の定義」領域で:
    1. 「宛先」で、アラームの起動時に通知を送信する場所を指定します:
      • 宛先サービス:「通知」を選択します。
      • コンパートメント: アラームによって評価されたメトリックを示すリソースが含まれているコンパートメントを選択します。選択したコンパートメントはアラームの格納場所でもあります。
      • トピック: 通知に使用するトピック。各トピックでは、PagerDutyなどの1つ以上のサブスクリプション・プロトコルがサポートされます。適切なトピックがまだ存在しない場合は、「トピックの作成」をクリックし、新しいトピックを定義します。詳細は、基本アラームの作成を参照してください。
    2. 「メッセージのグループ化」で、次のオプションのいずれかを選択します:
      • メトリック・ストリーム全体で通知をグループ化: すべてのメトリック・ストリームのメトリック・ステータスをまとめてトラッキングします。すべてのメトリック・ストリームのメトリック・ステータスが変更されたときにメッセージを送信します。
      • メトリック・ストリームごとに通知を分割: メトリック・ストリームごとにメトリック・ステータスを個別にトラッキングします。各メトリック・ストリームのメトリック・ステータスが変更されたときにメッセージを送信します。例については、シナリオ: メトリック・ストリームによるメッセージの分割を参照してください。
    3. 「メッセージ・フォーマット」で、次のオプションのいずれかを選択します:
      • 書式設定されたメッセージの送信: 簡易でわかりやすいレイアウト。書式設定されたメッセージ(RAW以外のオプション)に対してサポートされているサブスクリプション・プロトコルとメッセージ・タイプを確認するには、わかりやすい書式設定を参照してください。
      • 整形されたJSONメッセージ(改行されたRawテキスト)の送信: 改行とインデントを使用したJSON。
      • RAWメッセージの送信: RAW JSONブロブ。
    4. 指定した期間の評価および通知を抑制するには、「通知の抑制」を選択します。このオプションは、システム・メンテナンス期間中のアラーム通知の回避に役立ちます。開始時間、終了時間およびオプションの説明を指定します。アラームのベスト・プラクティスおよびアラームの抑制を参照してください。
    5. メトリック・データの評価を開始せずにアラームを保存するには、「このアラームを有効にしますか。」チェック・ボックスの選択を解除します。
  9. 「アラームの保存」をクリックします。