ローカル SSD のパフォーマンスの最適化


ディスクタイプ別パフォーマンスの表には、ローカル SSD パーティションで達成可能なパフォーマンスの上限値が示されています。これらの速度を達成できるよう、アプリケーションと VM のインスタンスを最適化するには、次のベスト プラクティスに従ってください。

ローカル SSD にゲスト環境最適化を使用する

Compute Engine が提供するほとんどの Linux イメージでは、デフォルトで、ローカル SSD のピーク パフォーマンスに合わせてインスタンスを構成する最適化スクリプトが自動的に実行されます。このスクリプトは、マシンの全体的なパフォーマンスを向上させるキュー sysfs の設定をいくつか有効にし、特定の仮想 CPU(vCPU)に対する割り込み要求(IRQ)をマスクします。このスクリプトがパフォーマンスを最適化するのは、Compute Engine のローカル SSD パーティションのみです。

Ubuntu や SLES、その他古いイメージでは、このパフォーマンス最適化を含むように構成されていない場合があります。これらのイメージ、または v20141218 より古いイメージを使用している場合は、代わりにゲスト環境をインストールして、最適化を有効にできます。

ローカル SSD を接続するインターフェースを選択する

NVMe インターフェースまたは SCSI インターフェースを使用して、ローカル SSD を VM に接続できます。最適な方法は、使用しているオペレーティング システム(OS)によって異なります。ローカル SSD を含むほとんどのワークロード構成では、NVMe インターフェースを使用するとパフォーマンスが向上します。

  • 特定の OS を使用する必要がある場合は、ブートディスク イメージに最適なローカル SSD パーティション用のインターフェースを選択します。

  • 既存の設定で SCSI インターフェースを使用する必要がある場合は、標準の SCSI インターフェースよりも優れたパフォーマンスを実現するために、マルチキュー SCSI をサポートするイメージを使用してください。

マルチキュー SCSI を有効にする

公開イメージのいくつかは、マルチキュー SCSI に対応しています。プロジェクトにインポートするカスタム イメージでマルチキュー SCSI を使用するには、手動で有効にする必要があります。Linux イメージをインポートする場合は、カーネル バージョンが 3.19 以降の場合のみマルチキュー SCSI を使用できます。

カスタム イメージでマルチキュー SCSI を有効にするには、VIRTIO_SCSI_MULTIQUEUE ゲスト OS 機能を有効にしてイメージをインポートし、GRUB 構成ファイルにエントリを追加します。

CentOS

CentOS7 のみ。

  1. API を使用してカスタム イメージをインポートし、type の値が VIRTIO_SCSI_MULTIQUEUEguestOsFeatures 項目を含めます。

  2. カスタム イメージを使用してインスタンスを作成し、ローカル SSD を少なくとも 1 つ接続します。

  3. SSH 経由でインスタンスに接続します。

  4. /sys/module/scsi_mod/parameters/use_blk_mq ファイルの値を確認します。

    $ cat /sys/module/scsi_mod/parameters/use_blk_mq
    

    このファイルの値が Y の場合、インポートしたイメージのマルチキュー SCSI は、すでに有効になっています。ファイルの値が N の場合、GRUB 構成ファイルの GRUB_CMDLINE_LINUX エントリに scsi_mod.use_blk_mq=Y を含めて、システムを再起動します。

    1. テキスト エディタで /etc/default/grub GRUB 構成ファイルを開きます。

      $ sudo vi /etc/default/grub
      
    2. GRUB_CMDLINE_LINUX の項目に scsi_mod.use_blk_mq=Y を追加します。

      GRUB_CMDLINE_LINUX=" vconsole.keymap=us console=ttyS0,38400n8 vconsole.font=latarcyrheb-sun16 scsi_mod.use_blk_mq=Y"
      
    3. 構成ファイルを保存します。

    4. grub2-mkconfig コマンドを実行して GRUB ファイルを再生成し、構成を完了します。

      $ sudo grub2-mkconfig -o /boot/grub2/grub.cfg
      
    5. インスタンスを再起動します。

      $ sudo reboot
      

Ubuntu

  1. Compute Engine API を使用してカスタム イメージをインポートし、type の値が VIRTIO_SCSI_MULTIQUEUEguestOsFeatures 項目を含めます。

  2. カスタム イメージを使用してインスタンスを作成し、SCSI インターフェースを使用して 1 つまたは複数のローカル SSD を接続します。

  3. SSH 経由でインスタンスに接続します。

  4. /sys/module/scsi_mod/parameters/use_blk_mq ファイルの値を確認します。

    $ cat /sys/module/scsi_mod/parameters/use_blk_mq
    

    このファイルの値が Y の場合、インポートしたイメージのマルチキュー SCSI は、すでに有効になっています。ファイルの値が N の場合、GRUB 構成ファイルの GRUB_CMDLINE_LINUX エントリに scsi_mod.use_blk_mq=Y を含めて、システムを再起動します。

    1. テキスト エディタで sudo nano /etc/default/grub GRUB 構成ファイルを開きます。

      $ sudo nano /etc/default/grub
      
    2. GRUB_CMDLINE_LINUX の項目に scsi_mod.use_blk_mq=Y を追加します。

      GRUB_CMDLINE_LINUX="scsi_mod.use_blk_mq=Y"
      
    3. 構成ファイルを保存します。

    4. update-grub コマンドを実行して GRUB ファイルを再生成し、構成を完了します。

      $ sudo update-grub
      
    5. インスタンスを再起動します。

      $ sudo reboot
      

次のステップ