各個磁碟類型的效能表說明瞭本機 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 介面可獲得更佳效能。
如果您需要使用特定作業系統,請為本機 SSD 磁碟區選擇介面,以便與開機磁碟映像檔搭配使用。
如果您現有的設定需要使用 SCSI 介面,請使用支援多佇列 SCSI的映像檔,以便透過標準 SCSI 介面達到更佳效能。
啟用多佇列 SCSI
某些公開映像檔支援多佇列 SCSI。如要在匯入專案的自訂映像檔上使用多佇列 SCSI,您必須自行啟用。匯入的 Linux 映像檔必須包含 3.19
以上核心版本才能使用多佇列 SCSI。
如要在自訂映像檔上啟用多佇列 SCSI,請啟用 VIRTIO_SCSI_MULTIQUEUE
訪客 OS 功能並匯入映像檔,然後在 GRUB 設定中新增相關項目:
CentOS
僅適用於 CentOS7。
使用 API 匯入自訂映像檔,並加入
type
值為VIRTIO_SCSI_MULTIQUEUE
的guestOsFeatures
項目。使用自訂映像檔建立執行個體,並連接一或多個本機 SSD。
透過安全殼層 (SSH) 連結至您的執行個體。
查看
/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
,然後重新啟動系統。在文字編輯器上開啟
/etc/default/grub
GRUB 設定檔。$ sudo vi /etc/default/grub
將
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"
儲存設定檔。
執行
grub2-mkconfig
指令來重新產生 GRUB 檔案,然後完成設定。$ sudo grub2-mkconfig -o /boot/grub2/grub.cfg
重新啟動執行個體。
$ sudo reboot
Ubuntu
使用 Compute Engine API 匯入自訂映像檔,並加入
type
值為VIRTIO_SCSI_MULTIQUEUE
的guestOsFeatures
項目。使用自訂映像檔建立執行個體,並使用 SCSI 介面連接一或多個本機 SSD。
透過安全殼層 (SSH) 連結至您的執行個體。
檢查
/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
,然後重新啟動系統。在文字編輯器上開啟
sudo nano /etc/default/grub
GRUB 設定檔。$ sudo nano /etc/default/grub
將
scsi_mod.use_blk_mq=Y
新增至GRUB_CMDLINE_LINUX
項目。GRUB_CMDLINE_LINUX="scsi_mod.use_blk_mq=Y"
儲存設定檔。
執行
update-grub
指令來重新產生 GRUB 檔案,然後完成設定。$ sudo update-grub
重新啟動執行個體。
$ sudo reboot