CentOS 配置網卡多隊列

網卡多隊列指實例規格支持的最大網卡隊列數。單臺實例vCPU處理網絡中斷存在性能瓶頸時,您可以將實例中的網絡中斷分散給不同的CPU處理,從而提升性能。

 

前提條件

  • 您的實例規格必須支持網卡多隊列功能。支持多隊列的實例規格請參見實例規格族,多隊列數值大於1時,表示支持網卡多隊列。

公共鏡像支持網卡多隊列,鏡像是否支持網卡多隊列與操作系統的位數無關。

背景信息

網卡多隊列是一種技術手段,可以解決網絡I/O帶寬QoS(Quality of Service)問題。網卡多隊列驅動將各個隊列通過中斷綁定到不同的核上,從而解決網絡I/O帶寬升高時單核CPU的處理瓶頸,提升網絡PPS和帶寬性能。經測試,在相同的網絡PPS和網絡帶寬的條件下,與1個隊列相比,2個隊列最多可提升性能達50%到100%,4個隊列的性能提升更大。

本文操作僅適用於Linux系統ECS實例。

手動配置

本節以CentOS 7.6鏡像爲例,假設ECS實例主網卡名稱爲enp9s0f0,輔助彈性網卡名稱爲eth1,介紹如何手動配置網卡多隊列。

  1. 運行ethtool -l enp9s0f0命令查看主網卡支持多隊列的情況。
    [root@localhost ~]# ethtool -l enp9s0f0
    Channel parameters for eth0:
    Pre-set maximums:
    RX: 0
    TX: 0
    Other: 0
    Combined: 2 # 表示最多支持設置2個隊列
    Current hardware settings:
    RX: 0
    TX: 0
    Other: 0
    Combined: 1 # 表示當前生效的是1個隊列

    說明 如果返回信息中,兩個Combined字段取值相同,則表示彈性網卡已開啓支持多隊列。

  2. 運行ethtool -L enp9s0f0 combined 2命令開啓網卡的多隊列功能。此命令作用是設置主網卡enp9s0f0使用兩個隊列。
    [root@localhost ~]# ethtool -L enp9s0f0 combined 2
  3. 設置輔助網卡的多隊列。
    # 查看輔助網卡eth1支持多隊列的情況
    [root@localhost ~]# ethtool -l enp9s0f0
    Channel parameters for enp9s0f0:
    Pre-set maximums:
    RX: 0
    TX: 0
    Other: 0
    Combined: 4 # 表示最多支持設置4個隊列
    Current hardware settings:
    RX: 0
    TX: 0
    Other: 0
    Combined: 1 # 表示當前生效的是1個隊列
    # 設置輔助網卡eth1使用4個隊列
    [root@localhost ~]# ethtool -L eth1 combined 4

 

實例:

 

[root@master01 ~]# ethtool -l enp9s0f0
Channel parameters for enp9s0f0:
Pre-set maximums:
RX:		0
TX:		0
Other:		0
Combined:	12
Current hardware settings:
RX:		0
TX:		0
Other:		0
Combined:	12

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章