操作場景
隨著網絡IO的帶寬不斷提升,單核CPU處理網絡中斷存在瓶頸,不能完全滿足網卡的需求,通過開啟網卡多隊列功能,您可以將彈性云主機中的網卡中斷分散給不同的CPU處理,以滿足網卡的需求,從而提升網絡PPS和帶寬性能。
假設以下場景所述的彈性云主機滿足規格和虛擬化類型要求:
- 使用網卡多隊列支持列表中的公共鏡像創建的彈性云主機,默認已開啟網卡多隊列,無需執行本節操作。
- 對于私有鏡像場景,如果您的外部鏡像文件的操作系統在網卡多隊列支持列表范圍內,需要按照如下流程開啟網卡多隊列: a. 將外部鏡像文件導入鏡像服務控制臺。
b. 為私有鏡像添加網卡多隊列標簽。
c. 使用私有鏡像創建彈性云主機。
d. 執行網卡多隊列的配置腳本。
說明云主機開啟網卡多隊列功能后,如果后續有新增或刪除網卡,切換VPC等操作,需要重新對云主機設置網卡多隊列,詳細操作請參考執行網卡多隊列的配置腳本。
網卡多隊列支持列表
網卡多隊列的支持情況和實例規格、虛擬化類型、鏡像的操作系統有關,只有同時滿足這些要求,彈性云主機才能開啟網卡多隊列功能。
- 支持網卡多隊列的實例規格請參見“實例規格(X86)規格清單、實例規格(鯤鵬)規格清單(鯤鵬)”。
說明網卡多隊列數為大于1的值,表示支持網卡多隊列。
- 虛擬化類型必須為KVM。
- 表所列的Linux公共鏡像,支持網卡多隊列。
- Windows操作系統彈性云主機的驅動pvdriver有一套動態調整網卡隊列數的策略,會根據vCPU數計算隊列數并進行動態調整,因此無需對windows網卡多隊列數進行設置。
- Windows 2008公共鏡像已下線,可通過私有鏡像支持。
- Linux操作系統彈性云主機建議將操作系統內核版本升級至2.6.35及以上,否則不支持網卡多隊列。 建議您使用命令uname -r查詢內核版本,如果低于2.6.35請聯系技術支持升級內核。
Windows彈性云主機網卡多隊列支持列表
| 鏡像 | 是否支持多隊列 | 是否默認開啟多隊列 |
|---|---|---|
| Windows Server 2008 R2 Standard/Enterprise/DataCenter 64bit | 是 | 是 |
| Windows Server 2008 Enterprise SP2 64bit | 是 | 是 |
| Windows Server 2008 Web R2 64 bit | 是 | 是 |
| Windows Server 2008 R2 Enterprise 64bit_WithGPUdriver | 是 | 是 |
| Windows Server 2012 R2 Standard 64bit_WithGPUdriver | 是 | 是 |
| Windows Server 2012 R2 Standard/DataCenter 64 bit | 是 | 是 |
| Windows Server 2016 Standard/DataCenter 64 bit | 是 | 是 |
| Windows Server 2019 DataCenter 64 bit | 是 | 是 |
Linux彈性云主機網卡多隊列支持列表
| 鏡像 | 是否支持多隊列 | 是否默認開啟多隊列 |
|---|---|---|
| Ubuntu 14.04/16.04/18.04/20.04 server 64bit | 是 | 是 |
| OpenSUSE 42.2/15.* 64bit | 是 | 是 |
| SUSE Enterprise 12 SP1/SP2 64bit | 是 | 是 |
| CentOS 6.8/6.9/7.*/8.*64bit | 是 | 是 |
| Debian 8.0.0/8.8.0/8.9.0/9.0.0/10.0.0/10.2.0 64bit | 是 | 是 |
| Fedora 24/25/30 64bit | 是 | 是 |
| EulerOS 2.2/2.3/2.5 64bit | 是 | 是 |
將外部鏡像文件導入鏡像服務控制臺
將外部鏡像文件導入鏡像服務控制臺,詳細操作請參見《鏡像服務用戶指南》。導入完成后,在鏡像詳情頁查看“網卡多隊列”參數取值。
- 如果為“支持”,執行使用私有鏡像創建彈性云主機。
- 如果為“不支持”,執行為鏡像添加網卡多隊列標簽。
為鏡像添加網卡多隊列標簽
Windows操作系統暫未商用支持網卡多隊列,如果對Windows操作系統鏡像添加網卡多隊列標簽,開啟網卡多隊列功能,可能會引起操作系統啟動速度變慢等問題。
用戶可以選擇以下任一種方式設置鏡像的網卡多隊列屬性。
方式1:
- 登錄管理控制臺。
- 選擇“計算 > 鏡像服務”。
- 單擊“私有鏡像”頁簽,在對應鏡像所在行的“操作”列下,單擊“修改”。
- 設置鏡像的網卡多隊列屬性。
方式2:
- 登錄管理控制臺。
- 選擇“計算 > 鏡像服務”。
- 單擊“私有鏡像”頁簽,在鏡像列表中,單擊鏡像名稱,進入鏡像詳情頁面。
- 單擊右上角的“修改”,在彈出的“修改鏡像”對話框中,設置鏡像的網卡多隊列屬性。
使用私有鏡像創建彈性云主機
使用注冊好的私有鏡像創建彈性云主機。在配置參數時,需要注意以下兩點:
- 區域:必須選擇私有鏡像所在的區域。
- 鏡像:選擇“私有鏡像”,并在下拉列表中選擇需要的鏡像。
執行網卡多隊列的配置腳本
Windows操作系統使用的半虛擬化驅動pvdriver有一套動態調整網卡隊列數的策略,會根據vCPU數計算隊列數并進行動態調整,因此無需對windows網卡多隊列數進行設置。
Linux操作系統提供了自動開啟網卡多隊列功能的配置腳本,配置成功后,彈性云主機支持網卡多隊列功能。
下載配置腳本“multi-queue-ctyun”。
下載地址://ecs-hy.obs.cn-gz1.daliqc.cn/multi-queue/multi-queue-ctyun
執行以下命令,添加執行權限。
chmod +x multi-queue-ctyun
執行以下命令,將腳本“multi-queue-ctyun”放到目錄/etc/init.d下。
mv multi-queue-ctyun /etc/init.d
執行以下命令,運行腳本“multi-queue-ctyun”。
/etc/init.d/multi-queue-ctyun start
運行腳本后,立即生效。但關機后,網卡多隊列功能將自動失效。
為了使網卡多隊列功能開機自動生效,各個OS需要增加開機啟動配置:
? CentOS/Redhat/Fedora/EulerOS/Suse/OpenSuse使用如下命令,增加開機啟動項,使網卡多隊列配置開機:
chkconfig multi-queue-ctyun on
? Ubuntu使用如下命令,增加開機啟動項:
update-rc.d multi-queue-ctyun defaults 90 10
? Debian使用如下命令,增加開機啟動項:
systemctl enable multi-queue-ctyun
查看網卡隊列數
- 開啟網卡多隊列功能
- 登錄彈性云主機。
- 執行以下命令,查看網卡支持和已開啟的隊列數。
ethtool -l 網卡
示例:
[root@localhost ~]# ethtool -l eth0 #查詢網卡eth0的隊列數
Channel parameters for eth0:
Pre-set maximums:
RX: 0
TX: 0
Other: 0
Combined: 4 #表示此網卡最多支持設置開啟4個隊列
Current hardware settings:
RX: 0
TX: 0
Other: 0
Combined: 4 #表示當前開啟的是4個隊列