【问题标题】:How to get Infiniband RX/Tx info如何获取 Infiniband RX/Tx 信息
【发布时间】:2012-06-05 19:31:38
【问题描述】:

是否有任何工具可以收集和显示 infiniband RX/TX 信息?

【问题讨论】:

    标签: linux infiniband


    【解决方案1】:

    您可以查询 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
    

    我认为最后 4 个字段是您感兴趣的数据。有关各种其他选项的详细信息,请参见手册页。

    【讨论】:

    • perfquery 的问题是计数器在 4294967295 处达到顶峰,这取决于您的应用程序,它不需要很长时间才能到达那里。您可以使用 ibclearcounters 将其重置为零,但这会清除整个网络的计数器。如果您正在做 IPoIB,您可以使用其他系统记帐工具 (sysstat) 来获取该信息,但您会错过其他流量,这就是我在这里寻找解决方案的原因。
    • 在最后一条评论之后,我对 perfquery 进行了深入研究,发现“perfquery -x”将报告 64 位值,因此它比我以前认为的有用得多。
    • 还有来自 infiniband-diags 包的 ibqueerryerrors 可以收集全网的计数器。此外,您还可以使用 ibdiagnet,它也是 OFED 的一部分。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多