如何获得Infiniband RX/Tx信息

D3H*_*ter 3 linux infiniband

有没有收集和显示infiniband RX/TX信息的工具?

Alb*_*Chu 7

您可以查询Infiniband性能计数器以获取此类信息.使用Openfabric的infiniband-diags软件包,perfquery工具应该足以满足您的需求.这是一个简单的例子:

> /usr/sbin/perfquery
# Port counters: Lid 22 port 1 (CapMask: 0x200)
PortSelect:......................1
CounterSelect:...................0x0000
SymbolErrorCounter:..............0
LinkErrorRecoveryCounter:........0
LinkDownedCounter:...............0
PortRcvErrors:...................0
PortRcvRemotePhysicalErrors:.....0
PortRcvSwitchRelayErrors:........0
PortXmitDiscards:................0
PortXmitConstraintErrors:........0
PortRcvConstraintErrors:.........0
CounterSelect2:..................0x00
LocalLinkIntegrityErrors:........0
ExcessiveBufferOverrunErrors:....0
VL15Dropped:.....................0
PortXmitData:....................237939
PortRcvData:.....................128199
PortXmitPkts:....................4165
PortRcvPkts:.....................4164
Run Code Online (Sandbox Code Playgroud)

我认为最后4个字段是您感兴趣的数据.有关其他各种选项的详细信息,请参阅联机帮助页.

  • perfquery的问题是计数器最高位于4294967295,这取决于你的应用程序,它不需要那么长时间到达那里.您可以使用ibclearcounters将其重置为零,但会清除整个网络的计数器.如果您正在进行IPoIB,您可以使用其他系统会计工具(sysstat)来获取该信息,但是您会错过其他流量,这就是我在这里寻找解决方案的原因. (2认同)
  • 在最后一条评论之后,我对perfquery进行了更深入的研究,发现'perfquery -x'将报告64位值,因此它比我之前认为的更有用. (2认同)