VM で PMU を有効にする


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

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

始める前に

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

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

    gcloud

    1. Install the Google Cloud CLI, then initialize it by running the following command:

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

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

        Install the Google Cloud CLI, then initialize it by running the following command:

        gcloud init

      詳細については、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 つ以上の 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 タイプを有効にするには、任意の 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:
      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. performanceMonitoringUnit フィールドを追加します。

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

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

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

      • 標準の PMU タイプ: STANDARD

      • 拡張 PMU タイプ: ENHANCED

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

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

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

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

VM のプロパティの更新の詳細については、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: C4 マシンタイプ。拡張 PMU タイプを有効にするには、96 個または 192 個の vCPU を持つ C4 マシンタイプを指定する必要があります。そうでないと、VM の作成に失敗します。

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

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

    • 標準の PMU タイプ: standard

    • 拡張 PMU タイプ: enhanced

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

REST

VM を作成して PMU を有効にするには、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: 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: 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: 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

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

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

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

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

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

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

gcloud

PMU を有効にしてインスタンス テンプレートを作成するには、--performance-monitoring-unit フラグを指定して gcloud compute instance-templates create コマンドを使用します。

たとえば、PMU を有効にしてグローバル インスタンス テンプレートを作成するには、次のコマンドを実行します。

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

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

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

  • MACHINE_TYPE: 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/global/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。

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

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

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

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

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

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

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

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

    • 標準の PMU タイプ: STANDARD

    • 拡張 PMU タイプ: ENHANCED

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

次のステップ