以太网接口
计数器用于提供有关操作系统、应用程序、服务或驱动程序性能的信息。计数器数据有助于确定系统瓶颈并微调系统和应用程序性能。操作系统、网络和设备提供计数器数据,应用程序可以使用这些数据向用户提供系统性能的图形视图。
计数器索引是 QP 上下文中给出的队列对 (QP) 属性。多个 QP 可能与同一计数器集关联。如果多个 QP 共享同一计数器,则计数器值将表示累积总数。
RoCE 计数器
RoCE 计数器仅通过位于以下位置的 sysfs 提供:
# /sys/class/infiniband/<device>/ports/*/hw_counters/
# /sys/class/infiniband/<device>/hw_counters/
# /sys/class/infiniband/<device>/ports/*/counters/
对于 mlx5 端口和 RoCE 计数器,请参阅 了解 mlx5 Linux 计数器 社区帖子。
SR-IOV 计数器
PF 还可以通过位于 /sys/class/net/<interface_name>/device/sriov/<index>/stats/
下的 sysfs 读取 VF 的端口计数器。
ethtool 计数器
ethtool 计数器在不同的位置进行计数,根据计数位置将其分为不同的组。每个计数器组也可能具有不同的计数器类型。

有关支持的 ethtool 计数器的完整列表,请参阅 了解 mlx5 ethtool 计数器 社区帖子。
为避免在启动或驱动程序重启后重命名网络接口,请在 /etc/udev/rules.d/70-persistent-net.rules
文件中设置所需的常量接口名称。
以太网接口示例
PCI device 15b3:
1019
(mlx5_core) SUBSYSTEM=="net"
, ACTION=="add"
, DRIVERS=="?*"
, ATTR{address}=="00:02:c9:fa:c3:50"
, ATTR{dev_id}=="0x0"
, ATTR{type}=="1"
, KERNEL=="eth*"
, NAME="eth1"
SUBSYSTEM=="net"
, ACTION=="add"
, DRIVERS=="?*"
, ATTR{address}=="00:02:c9:fa:c3:51"
, ATTR{dev_id}=="0x0"
, ATTR{type}=="1"
, KERNEL=="eth*"
, NAME="eth2"
SUBSYSTEM=="net"
, ACTION=="add"
, DRIVERS=="?*"
, ATTR{address}=="00:02:c9:e9:56:a1"
, ATTR{dev_id}=="0x0"
, ATTR{type}=="1"
, KERNEL=="eth*"
, NAME="eth3"
SUBSYSTEM=="net"
, ACTION=="add"
, DRIVERS=="?*"
, ATTR{address}=="00:02:c9:e9:56:a2"
, ATTR{dev_id}=="0x0"
, ATTR{type}=="1"
, KERNEL=="eth*"
, NAME="eth4"
IPoIB 接口示例
SUBSYSTEM==
"net"
, ACTION=="add"
, DRIVERS=="?*"
, ATTR{dev_id}=="0x0"
, ATTR{type}=="32"
, NAME="ib0"
SUBSYSTEM=="net"
, ACTION=="add"
, DRIVERS=="?*"
, ATTR{dev_id}=="0x1"
, ATTR{type}=="32"
, NAME="ib1"
一旦驱动程序分配了 IRQ,它们将被命名为 mlx5_comp<x>@pci:<pci_addr>
。IRQ 名称是常量,不受接口状态的影响。
mlx5_core 驱动程序在加载时分配所有 IRQ,以支持最大可能的通道数。一旦驱动程序启动,将不再释放或分配 IRQ。更改工作通道的数量不会重新分配或释放 IRQ。