VM で PMU を有効にする


このドキュメントでは、新しい仮想マシン(VM)インスタンスまたは既存の仮想マシン(VM)インスタンスでパフォーマンス モニタリング ユニット(PMU)を有効にする方法について説明します。PMU の詳細については、PMU の概要をご覧ください。

C4A または C4 VM で PMU を有効にして VM に接続した後、VM でパフォーマンス モニタリング ソフトウェアを実行してインストールし、VM で実行されているソフトウェアのパフォーマンスを分析して最適化できます。この方法では、ハイ パフォーマンス コンピューティング(HPC)ワークロードや ML ワークロードなど、パフォーマンスの影響が大きいワークロードを実行する場合に便利です。

始める前に

  • まだ設定していない場合は、認証を設定します。認証とは、 Google Cloud サービスと API にアクセスするために ID を確認するプロセスです。ローカル開発環境からコードまたはサンプルを実行するには、次のいずれかのオプションを選択して Compute Engine に対する認証を行います。

    Select the tab for how you plan to use the samples on this page:

    gcloud

      1. After installing the Google Cloud CLI, initialize it by running the following command:

        gcloud init

        If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

      2. Set a default region and zone.
      3. REST

        このページの REST API サンプルをローカル開発環境で使用するには、gcloud CLI に指定した認証情報を使用します。

          After installing the Google Cloud CLI, initialize it by running the following command:

          gcloud init

          If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

        詳細については、 Google Cloud 認証ドキュメントの REST を使用して認証するをご覧ください。

必要なロール

新規または既存の VM で PMU を有効にするために必要な権限を取得するには、プロジェクトに対する Compute インスタンス管理者(v1)roles/compute.instanceAdmin.v1)IAM ロールを付与するよう管理者に依頼します。ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。

この事前定義ロールには、新しい VM または既存の VM で PMU を有効にするために必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。

必要な権限

新しい VM または既存の VM で PMU を有効にするには、次の権限が必要です。

  • VM を作成する:
    • プロジェクトに対する compute.instances.create
    • カスタム イメージを使用して VM を作成する: イメージに対する compute.images.useReadOnly
    • スナップショットを使用して VM を作成する: スナップショットに対する compute.snapshots.useReadOnly
    • インスタンス テンプレートを使用して VM を作成する: インスタンス テンプレートに対する compute.instanceTemplates.useReadOnly
    • レガシー ネットワークを VM に割り当てる: プロジェクトに対する compute.networks.use
    • VM の静的 IP アドレスを指定する: プロジェクトに対する compute.addresses.use
    • レガシー ネットワークの使用時に VM に外部 IP アドレスを割り当てる: プロジェクトに対する compute.networks.useExternalIp
    • VM のサブネットを指定する: プロジェクトまたは選択したサブネットに対する compute.subnetworks.use
    • VPC ネットワークの使用時に VM に外部 IP アドレスを割り当てる: プロジェクトまたは選択したサブネットに対する compute.subnetworks.useExternalIp
    • VM の VM インスタンス メタデータを設定する: プロジェクトに対する compute.instances.setMetadata
    • VM にタグを設定する: VM に対する compute.instances.setTags
    • VM にラベルを設定する: VM に対する compute.instances.setLabels
    • VM が使用するサービス アカウントを設定する: VM に対する compute.instances.setServiceAccount
    • VM に新しいディスクを作成する: プロジェクトに対する compute.disks.create
    • 既存のディスクを読み取り専用モードまたは読み取り / 書き込みモードでアタッチする: ディスクに対する compute.disks.use
    • 既存のディスクを読み取り専用モードでアタッチする: ディスクに対する compute.disks.useReadOnly
  • インスタンス テンプレートを作成する: プロジェクトに対する compute.instanceTemplates.create
  • VM を更新する: VM に対する compute.instances.update

カスタムロールや他の事前定義ロールを使用して、これらの権限を取得することもできます。

VM で PMU を有効にする

1 つ以上の C4A または C4 VM で PMU を有効にするには、次のいずれかの方法を使用します。

1 つ以上の VM で PMU を有効にしたら、VM にパフォーマンス モニタリング ソフトウェアをインストールして使用できます。

既存の VM で PMU を有効にする

既存の VM で PMU を有効にする前に、次の手順で VM がサポート対象のマシンタイプと CPU プラットフォームを使用していることを確認します。

  1. VM のマシンタイプと CPU プラットフォームを確認するには、VM の詳細を表示します。

  2. VM のマシンタイプを変更する必要がある場合は、次の操作を行います。

    1. VM が配置されているゾーンでサポートされている CPU プラットフォームが使用可能であることを確認するには、利用可能なリージョンとゾーンをご覧ください。

    2. 次のようにマシンタイプを変更します。

      • 拡張 PMU タイプを有効にするには、96 個または 192 個の vCPU を持つ C4 マシンタイプを指定する必要があります。

      • それ以外の場合に、アーキテクチャまたは標準の PMU タイプを有効にするには、任意の C4A または C4 マシンタイプを指定します。

PMU を有効にするために VM を停止する必要はありません。ただし、変更を有効にするには、このセクションで説明するように VM を再起動する必要があります。

既存の VM で PMU を有効にするには、次のいずれかのオプションを選択します。

gcloud

  1. 空の YAML ファイルを作成します。

  2. 作成したばかりの YAML ファイルに VM のプロパティをエクスポートするには、gcloud compute instances export コマンドを使用します。

    gcloud compute instances export VM_NAME \
        --destination=YAML_FILE \
        --zone=ZONE
    

    次のように置き換えます。

    • VM_NAME: VM の名前。

    • YAML_FILE: 前の手順で作成した YAML ファイルのパス。

    • ZONE: VM が配置されているゾーン。

  3. YAML 構成ファイルに performanceMonitoringUnit フィールドを追加します。advancedMachineFeatures フィールドが存在しない場合は、次のように追加します。

    advancedMachineFeatures:
      performanceMonitoringUnit: PMU_TYPE
    

    PMU_TYPE は次のいずれかの値に置き換えます。

    • アーキテクチャの PMU タイプ: ARCHITECTURAL

    • 標準の PMU タイプ: STANDARD

    • 拡張 PMU タイプ: ENHANCED

  4. VM を更新して再起動するには、--most-disruptive-allowed-action フラグを RESTART に設定して gcloud compute instances update-from-file コマンドを使用します。

    gcloud compute instances update-from-file VM_NAME \
        --most-disruptive-allowed-action=RESTART \
        --source=YAML_FILE \
        --zone=ZONE
    

    次のように置き換えます。

    • VM_NAME: VM の名前。

    • YAML_FILE: 前の手順で変更した構成データを含む YAML ファイルのパス。

    • ZONE: VM が配置されているゾーン。

REST

  1. 空の JSON ファイルを作成します。

  2. 既存の VM のプロパティを表示するには、instances.get メソッドGET リクエストを送信します。

    GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME
    

    次のように置き換えます。

    • PROJECT_ID: VM が配置されているプロジェクトのプロジェクト ID。

    • ZONE: VM が配置されているゾーン。

    • VM_NAME: 既存の VM の名前。

  3. 前の手順で作成した空の JSON ファイルで、次の操作を行います。

    1. GET リクエストの出力から VM プロパティを入力します。

    2. advancedMachineFeatures フィールドで、performanceMonitoringUnit フィールドを追加します。advancedMachineFeatures フィールドが存在しない場合は、次のように追加します。

      {
        "advancedMachineFeatures": {
          "performanceMonitoringUnit": "PMU_TYPE"
        },
        ...
      }
      

      PMU_TYPE は次のいずれかの値に置き換えます。

      • アーキテクチャの PMU タイプ: ARCHITECTURAL

      • 標準の PMU タイプ: STANDARD

      • 拡張 PMU タイプ: ENHANCED

  4. VM を更新して再起動するには、instances.update メソッドPUT リクエストを送信します。リクエストで、次の操作を行います。

    • リクエスト URL に、RESTART に設定された mostDisruptiveAllowedAction クエリ パラメータを含めます。

    • リクエスト本文には、前の手順で作成して更新した JSON ファイルの VM プロパティを使用します。

    出力は次のようになります。

    PUT https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME?mostDisruptiveAllowedAction=RESTART
    
    {
      "advancedMachineFeatures": {
        "performanceMonitoringUnit": "PMU_TYPE"
      },
      ...
    }
    

VM のプロパティの更新の詳細については、インスタンス プロパティを更新するをご覧ください。

VM の作成時に PMU を有効にする

PMU を有効にした VM は、サポートされている CPU プラットフォームを含むゾーンにのみ作成できます。ゾーンごとの使用可能な CPU のリストについては、使用可能なリージョンとゾーンをご覧ください。

PMU を有効にして VM を作成するには、次のいずれかのオプションを選択します。

gcloud

PMU を有効にして VM を作成するには、--performance-monitoring-unit フラグを指定して gcloud compute instances create コマンドを使用します。

gcloud compute instances create VM_NAME \
    --machine-type=MACHINE_TYPE \
    --performance-monitoring-unit=PMU_TYPE \
    --zone=ZONE

次のように置き換えます。

  • VM_NAME: VM の名前。

  • MACHINE_TYPE: C4A または C4 マシンタイプ。拡張 PMU タイプを有効にするには、96 個または 192 個の vCPU を持つ C4 マシンタイプを指定する必要があります。そうでないと、VM の作成に失敗します。

  • PMU_TYPE: VM で有効にする PMU のタイプ。次のいずれかの値を指定します。

    • アーキテクチャの PMU タイプ: architectural

    • 標準の PMU タイプ: standard

    • 拡張 PMU タイプ: enhanced

  • ZONE: VM インスタンスを作成するゾーン。

REST

PMU を有効にして VM を作成するには、instances.insert メソッドPOST リクエストを送信します。リクエスト本文に、performanceMonitoringUnit フィールドを含めます。

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances

{
  "name": "VM_NAME",
  "machineType": "zones/ZONE/machineTypes/MACHINE_TYPE",
  "disks": [
    {
      "boot": true,
      "initializeParams": {
        "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
      }
    }
  ],
  "networkInterfaces": [
    {
      "network": "global/networks/default"
    }
  ],
  "advancedMachineFeatures": {
    "performanceMonitoringUnit": "PMU_TYPE"
  }
}

次のように置き換えます。

  • PROJECT_ID: VM を作成するプロジェクトの ID。

  • ZONE: VM インスタンスを作成するゾーン。

  • VM_NAME: VM の名前。

  • MACHINE_TYPE: C4A または C4 マシンタイプ。拡張 PMU タイプを有効にするには、96 個または 192 個の vCPU を持つ C4 マシンタイプを指定する必要があります。そうでないと、VM の作成に失敗します。

  • IMAGE_PROJECT: イメージを含むイメージ プロジェクト(例: debian-cloud)。サポートされているイメージ プロジェクトの詳細については、公開イメージをご覧ください。

  • IMAGE: 次のいずれかを指定します。

    • OS イメージの特定のバージョン。例: debian-12-bookworm-v20240617

    • イメージ ファミリーfamily/IMAGE_FAMILY の形式にする必要があります。これにより、非推奨ではない最新の OS イメージが指定されます。たとえば、family/debian-12 を指定すると、Debian 12 イメージ ファミリーの最新バージョンが使用されます。イメージ ファミリーの使用の詳細については、イメージ ファミリーのベスト プラクティスをご覧ください。

  • PMU_TYPE: VM で有効にする PMU のタイプ。次のいずれかの値を指定します。

    • アーキテクチャの PMU タイプ: ARCHITECTURAL

    • 標準の PMU タイプ: STANDARD

    • 拡張 PMU タイプ: ENHANCED

VM の作成の詳細については、Compute Engine インスタンスの作成と開始をご覧ください。

VM を一括作成するときに PMU を有効にする

PMU を有効にして VM を一括作成できるのは、サポートされている CPU プラットフォームを含むゾーンに限られます。ゾーンごとの使用可能な CPU のリストについては、使用可能なリージョンとゾーンをご覧ください。

PMU を有効にして VM を一括作成するには、次のいずれかのオプションを選択します。

gcloud

PMU を有効にして VM を一括作成するには、--performance-monitoring-unit フラグを指定して gcloud compute instances bulk create コマンドを使用します。

たとえば、単一のゾーンで VM を一括作成し、名前パターンを指定するには、次のコマンドを実行します。

gcloud compute instances bulk create \
    --count=COUNT \
    --machine-type=MACHINE_TYPE \
    --name-pattern="NAME_PATTERN" \
    --performance-monitoring-unit=PMU_TYPE \
    --zone=ZONE

次のように置き換えます。

  • COUNT: 作成する VM の数。

  • MACHINE_TYPE: C4A または C4 マシンタイプ。拡張 PMU タイプを有効にするには、96 個または 192 個の vCPU を持つ C4 マシンタイプを指定する必要があります。そうでないと、VM の作成に失敗します。

  • NAME_PATTERN: VM の名前パターン。VM 名の一連の数字を置き換えるには、一連のハッシュ(#)文字を使用します。たとえば、名前パターンに vm-# を使用すると、vm-1vm-2 で始まり、COUNT で指定された VM の数まで続く名前の VM が生成されます。

  • PMU_TYPE: VM で有効にする PMU のタイプ。次のいずれかの値を指定します。

    • アーキテクチャの PMU タイプ: architectural

    • 標準の PMU タイプ: standard

    • 拡張 PMU タイプ: enhanced

  • ZONE: VM を一括作成するゾーン。

REST

PMU を有効にして VM を一括作成するには、instances.bulkInsert メソッドPOST リクエストを送信します。リクエスト本文に、performanceMonitoringUnit フィールドを含めます。

たとえば、単一のゾーンで VM を一括作成し、名前パターンを指定するには、次のように POST リクエストを送信します。

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/bulkInsert

{
  "count": COUNT,
  "namePattern": "NAME_PATTERN",
  "instanceProperties": {
    "machineType": "MACHINE_TYPE",
    "disks": [
      {
        "boot": true,
        "initializeParams": {
          "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
        }
      }
    ],
    "networkInterfaces": [
      {
        "network": "global/networks/default"
      }
    ],
    "advancedMachineFeatures": {
      "performanceMonitoringUnit": "PMU_TYPE"
    }
  }
}

次のように置き換えます。

  • PROJECT_ID: VM を一括作成するプロジェクトの ID。

  • ZONE: VM を一括作成するゾーン。

  • COUNT: 作成する VM の数。

  • NAME_PATTERN: VM の名前パターン。VM 名の一連の数字を置き換えるには、一連のハッシュ(#)文字を使用します。たとえば、名前パターンに vm-# を使用すると、vm-1vm-2 で始まり、COUNT で指定された VM の数まで続く名前の VM が生成されます。

  • MACHINE_TYPE: C4A または C4 マシンタイプ。拡張 PMU タイプを有効にするには、96 個または 192 個の vCPU を持つ C4 マシンタイプを指定する必要があります。そうでないと、VM の作成に失敗します。

  • IMAGE_PROJECT: イメージを含むイメージ プロジェクト(例: debian-cloud)。サポートされているイメージ プロジェクトの詳細については、公開イメージをご覧ください。

  • IMAGE: 次のいずれかを指定します。

    • OS イメージの特定のバージョン。例: debian-12-bookworm-v20240617

    • イメージ ファミリーfamily/IMAGE_FAMILY の形式にする必要があります。これにより、非推奨ではない最新の OS イメージが指定されます。たとえば、family/debian-12 を指定すると、Debian 12 イメージ ファミリーの最新バージョンが使用されます。イメージ ファミリーの使用の詳細については、イメージ ファミリーのベスト プラクティスをご覧ください。

  • PMU_TYPE: VM で有効にする PMU のタイプ。次のいずれかの値を指定します。

    • アーキテクチャの PMU タイプ: ARCHITECTURAL

    • 標準の PMU タイプ: STANDARD

    • 拡張 PMU タイプ: ENHANCED

VM を一括作成する方法の詳細については、VM を一括作成するをご覧ください。

インスタンス テンプレートの作成時に PMU を有効にする

PMU を有効にしてリージョン インスタンス テンプレートを作成する場合は、選択したリージョン内の少なくとも 1 つのゾーンにサポート対象の CPU プラットフォームが含まれていることを確認してください。ゾーンごとの使用可能な CPU のリストについては、使用可能なリージョンとゾーンをご覧ください。

PMU が有効になっているインスタンス テンプレートを作成すると、そのテンプレートを使用して次のことができます。

PMU が有効になっているインスタンス テンプレートを作成するには、次のいずれかのオプションを選択します。

gcloud

PMU を有効にしてインスタンス テンプレートを作成するには、--performance-monitoring-unit フラグを指定して gcloud compute instance-templates create コマンドを使用します。リージョン インスタンス テンプレートを作成するには、--instance-template-region フラグも指定する必要があります。

たとえば、PMU が有効になっているリージョン インスタンス テンプレートを作成するには、次のコマンドを実行します。

gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
    --instance-template-region=REGION \
    --machine-type=MACHINE_TYPE \
    --performance-monitoring-unit=PMU_TYPE

次のように置き換えます。

  • INSTANCE_TEMPLATE_NAME: インスタンス テンプレートの名前。

  • REGION: インスタンス テンプレートを作成するリージョン。

  • MACHINE_TYPE: C4A または C4 マシンタイプ。拡張 PMU タイプを有効にするには、96 個または 192 個の vCPU を持つ C4 マシンタイプを指定する必要があります。そうでないと、VM の作成に失敗します。

  • PMU_TYPE: インスタンス テンプレートに含める PMU のタイプ。次のいずれかの値を指定します。

    • アーキテクチャの PMU タイプ: architectural

    • 標準の PMU タイプ: standard

    • 拡張 PMU タイプ: enhanced

REST

PMU が有効になっているインスタンス テンプレートを作成するには、次のいずれかのメソッドに POST リクエストを送信します。

リクエスト本文に、performanceMonitoringUnit フィールドを含めます。

たとえば、PMU が有効になっているリージョン インスタンス テンプレートを作成するには、次のように POST リクエストを送信します。

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceTemplates

{
  "name": "INSTANCE_TEMPLATE_NAME",
  "properties": {
    "disks": [
      {
        "boot": true,
        "initializeParams": {
          "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
        }
      }
    ],
    "machineType": "MACHINE_TYPE",
    "networkInterfaces": [
      {
        "network": "global/networks/default"
      }
    ],
    "advancedMachineFeatures": {
      "performanceMonitoringUnit": "PMU_TYPE"
    }
  }
}

次のように置き換えます。

  • PROJECT_ID: インスタンス テンプレートを作成するプロジェクトの ID。

  • REGION: インスタンス テンプレートを作成するリージョン。

  • INSTANCE_TEMPLATE_NAME: インスタンス テンプレートの名前。

  • IMAGE_PROJECT: イメージを含むイメージ プロジェクト(例: debian-cloud)。サポートされているイメージ プロジェクトの詳細については、公開イメージをご覧ください。

  • IMAGE: 次のいずれかを指定します。

    • OS イメージの特定のバージョン。例: debian-12-bookworm-v20240617

    • イメージ ファミリーfamily/IMAGE_FAMILY の形式にする必要があります。これにより、非推奨ではない最新の OS イメージが指定されます。たとえば、family/debian-12 を指定すると、Debian 12 イメージ ファミリーの最新バージョンが使用されます。イメージ ファミリーの使用の詳細については、イメージ ファミリーのベスト プラクティスをご覧ください。

  • MACHINE_TYPE: C4A または C4 マシンタイプ。拡張 PMU タイプを有効にするには、96 個または 192 個の vCPU を持つ C4 マシンタイプを指定する必要があります。そうでないと、VM の作成に失敗します。

  • PMU_TYPE: インスタンス テンプレートに含める PMU のタイプ。次のいずれかの値を指定します。

    • アーキテクチャの PMU タイプ: ARCHITECTURAL

    • 標準の PMU タイプ: STANDARD

    • 拡張 PMU タイプ: ENHANCED

インスタンス テンプレートの作成の詳細については、インスタンス テンプレートを作成するをご覧ください。

次のステップ