網絡卡多佇列

2022-05-02 16:33:12 字數 2133 閱讀 3709

多佇列指例項規格支援的最大網絡卡佇列數。單個ecs例項vcpu處理網路中斷存在效能瓶頸時,您可以將例項中的網路中斷分散給不同的cpu處理。經測試,在相同的網路pps和網路頻寬的條件下,與1個佇列相比,2個佇列最多可提公升效能達50%到100%,4個佇列的效能提公升更大。

如果您使用的映象已預設開啟網絡卡多佇列功能,請跳過此章節內容。

本節以aliyun linux 17.1映象為例,假設例項主網絡卡名稱為eth0,輔助彈性網絡卡名稱為eth1,介紹如何手動配置網絡卡多佇列。

執行命令ethtool -l eth0檢視主網絡卡支援多佇列的情況。

[root@localhost ~]# ethtool -l eth0

channel parameters for eth0:

pre-set maximums:

rx: 0

tx: 0

other: 0

combined: 2 # 表示最多支援設定2個佇列

currenthardware settings:

rx: 0

tx: 0

other: 0

combined: 1 # 表示當前生效的是1個佇列

說明 如果返回資訊中,兩個combined字段取值相同,則表示彈性網絡卡已開啟支援多佇列。

執行命令ethtool -l eth0 combined 2開啟網絡卡的多佇列功能。命令作用是設定主網絡卡eth0使用兩個佇列。

[root@localhost ~]# ethtool -l eth0 combined 2

設定輔助網絡卡的多佇列。

# 檢視輔助網絡卡eth1支援多佇列的情況

[root@localhost ~]# ethtool -l eth1

channel parameters for eth1:

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

(推薦)開啟irqbalance服務,讓ecs例項自動調整網路中斷在多個vcpu核上的分配。執行命令systemctl start irqbalance開啟服務。

執行命令systemctl status irqbalance檢視服務狀態。

結果顯示active (running),表示已開啟irqbalance服務。

說明 開啟網絡卡多佇列後,如果網路效能提公升仍達不到您的預期,您可以考慮開啟rps(receive packet steering)特性。

阿里雲官方提供的centos、ubuntu公共映象,預設開啟rps特性。如果您使用的是其他公共映象或者自定義映象,可參考如下shell指令碼自行開啟rps特性。

#!/bin/bash

cpu_num=$(grep -c processor /proc/cpuinfo)

quotient=$((cpu_num/8))

if [ $quotient -gt 2 ]; then

quotient=2

elif [ $quotient -lt 1 ]; then

quotient=1

fifor i in $(seq $quotient)

docpuset="$f"

done

for rps_file in $(ls /sys/class/net/eth*/queues/rx-*/rps_cpus)

doecho $cpuset > $rps_file

done

lvs 網絡卡多佇列

bin bash 平均繫結cpu到網絡卡多個佇列上,避免單核cpu跑滿的問題 ipmi cpu高 f sys module ipmi si parameters kipmid max busy us echo 10 sys module ipmi si parameters kipmid max b...

網絡卡多佇列學習小結

1.網絡卡多佇列 網絡卡多佇列是需要多佇列網絡卡支援的。所謂網絡卡多佇列是網絡卡硬體支援的。1 開啟軟體多佇列的方法 2 檢視軟體多佇列開啟的效果 cat proc interrupts grep eth0 cat proc interrupts grep eth0 2.設定irq affinity...

Linux網路協議棧 多佇列網絡卡原理

背景 近日因公司大促,mysql從伺服器前端共享的一台lvs因流量跑到2gps 而出現 lvs丟包,client端 不停丟擲mysql connect failed異常.故障特徵 大流量時為lvs的cpu其中乙個core使用率100 其他23個core使用率小於10 明顯地 根本原因 lvs使用li...