操作場景
隨著網絡IO的帶寬不斷提升,單核CPU處理網絡中斷存在瓶頸,不能完全滿足網卡的需求,通過開啟網卡多隊列功能,您可以將彈性云主機中的網卡中斷分散給不同的CPU處理,以滿足網卡的需求,從而提升網絡PPS和帶寬性能。
假設以下場景所述的彈性云主機滿足規格和虛擬化類型要求:
-
使用網卡多隊列支持列表中的公共鏡像創建的彈性云主機,默認已開啟網卡多隊列,無需執行本節操作。
-
對于私有鏡像場景,如果您的外部鏡像文件的操作系統在網卡多隊列支持列表范圍內,需要按照如下流程開啟網卡多隊列:
a. 將外部鏡像文件導入鏡像服務控制臺。
b. 使用私有鏡像創建彈性云主機。
c. 執行網卡多隊列的配置腳本。
說明云主機開啟網卡多隊列功能后,如果后續有新增或刪除網卡,切換VPC等操作,需要重新對云主機設置網卡多隊列。
網卡多隊列支持列表
網卡多隊列的支持情況和實例規格、虛擬化類型、鏡像的操作系統有關,只有同時滿足這些要求,彈性云主機才能開啟網卡多隊列功能。
- 支持網卡多隊列的規格請參考彈性云主機-產品規格,網卡多隊列數大于1的表示支持多隊列。
- 所有公共鏡像均支持網卡多隊列。
將外部鏡像文件導入鏡像服務控制臺
將外部鏡像文件導入鏡像服務控制臺,詳細操作請參考鏡像服務-通過鏡像文件創建系統盤鏡像。
使用私有鏡像創建彈性云主機
使用注冊好的私有鏡像創建彈性云主機。在配置參數時,需要注意以下兩點:
- 區域:必須選擇私有鏡像所在的區域。
- 鏡像:選擇“私有鏡像”,并在下拉列表中選擇需要的鏡像。
執行網卡多隊列的配置腳本
Windows操作系統使用的半虛擬化驅動pvdriver有一套動態調整網卡隊列數的策略,會根據vCPU數計算隊列數并進行動態調整,因此無需對windows網卡多隊列數進行設置。
Linux操作系統提供了自動開啟網卡多隊列功能的配置腳本,配置成功后,彈性云主機支持網卡多隊列功能。
下載配置腳本“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個隊列