优化本地 SSD 性能


各种磁盘类型的性能图表中描述了本地 SSD 分区可实现的性能上限。如需优化应用和虚拟机实例以达到这些速度,请使用以下最佳做法:

对本地 SSD 使用客机环境优化功能

默认情况下,大多数由 Compute Engine 提供的 Linux 映像将自动运行一个优化脚本,该脚本会对实例进行配置以实现本地 SSD 的最高性能。该脚本会启用某些队列 sysfs 设置,这些设置可增强机器的整体性能,并屏蔽对特定虚拟 CPU (vCPU) 的中断请求 (IRQ)。此脚本仅优化 Compute Engine 本地 SSD 分区的性能。

Ubuntu、SLES 和其他较旧的映像可能未配置为包含此性能优化功能。如果您使用的是这些映像中的任何一个或 v20141218 之前的映像,则可以安装客机环境来启用这些优化功能。

选择用于连接本地 SSD 的接口

您可以使用 NVMe 接口或 SCSI 接口将本地 SSD 连接到虚拟机。最佳选择取决于您使用的操作系统 (OS)。对于大多数涉及本地 SSD 的工作负载配置,使用 NVMe 接口可以提高性能。

启用多队列 SCSI

某些公共映像支持多队列 SCSI。如需在导入到项目中的自定义映像上使用多队列 SCSI,您必须自行启用它。只有导入的 Linux 映像包含内核版本 3.19 或更高版本时才能使用多队列 SCSI。

如需在某个自定义映像上启用多队列 SCSI,请在启用了 VIRTIO_SCSI_MULTIQUEUE 访客操作系统功能的情况下导入该映像,并向 GRUB 配置文件中添加一个条目:

CentOS

仅适用于 CentOS7。

  1. 使用 API 导入您的自定义映像,并添加一个 type 值为 VIRTIO_SCSI_MULTIQUEUEguestOsFeatures 项。

  2. 使用您的自定义映像创建一个实例,并挂接一个或多个本地 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. 在文本编辑器中打开 /etc/default/grub GRUB 配置文件。

      $ sudo vi /etc/default/grub
      
    2. scsi_mod.use_blk_mq=Y 添加到 GRUB_CMDLINE_LINUX 条目。

      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 接口附加一个或多个本地 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. scsi_mod.use_blk_mq=Y 添加到 GRUB_CMDLINE_LINUX 条目。

      GRUB_CMDLINE_LINUX="scsi_mod.use_blk_mq=Y"
      
    3. 保存配置文件。

    4. 运行 update-grub 命令即可重新生成 GRUB 文件并完成配置。

      $ sudo update-grub
      
    5. 重启实例。

      $ sudo reboot
      

后续步骤