以太网接口
计数器用于提供有关操作系统、应用程序、服务或驱动程序性能的信息。计数器数据有助于确定系统瓶颈并微调系统和应用程序性能。操作系统、网络和设备提供计数器数据,应用程序可以使用这些数据向用户提供系统性能的图形视图。
计数器索引是 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。