<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Test on Charlie Chiang's blog</title><link>https://charlie0129.github.io/blog/tags/test/</link><description>Recent content in Test on Charlie Chiang's blog</description><generator>Hugo -- gohugo.io</generator><language>en</language><lastBuildDate>Fri, 19 Jul 2024 11:10:00 +0800</lastBuildDate><atom:link href="https://charlie0129.github.io/blog/tags/test/index.xml" rel="self" type="application/rss+xml"/><item><title>InfiniBand Performance Test</title><link>https://charlie0129.github.io/blog/p/ib-perf-test/</link><pubDate>Fri, 19 Jul 2024 11:10:00 +0800</pubDate><guid>https://charlie0129.github.io/blog/p/ib-perf-test/</guid><description>&lt;p>We have a 200Gbps InfiniBand network among about 100 nodes, connected using &lt;em>NVIDIA ConnectX-7 NICs (HDR200)&lt;/em> to a &lt;em>NVIDIA MQM9700&lt;/em> switch. Each OSFP twin port (2xNDR, 2x400Gbps) on &lt;em>QM9700&lt;/em> is splitted into 4xNDR200 ports to connect to 4x&lt;em>NVIDIA ConnectX-7 NICs&lt;/em> using 2xNDR to 4xNDR200 DAC/ACC (OSFP to 4x OSFP).&lt;/p>
&lt;p>&lt;img src="https://charlie0129.github.io/blog/p/ib-perf-test/images/topo.png"
width="2020"
height="1008"
srcset="https://charlie0129.github.io/blog/p/ib-perf-test/images/topo_hu_72e9afa7913190fb.webp 480w, https://charlie0129.github.io/blog/p/ib-perf-test/images/topo_hu_109f3449fa4d8720.jpg 480w, https://charlie0129.github.io/blog/p/ib-perf-test/images/topo_hu_ffa04b394bad063d.webp 1024w, https://charlie0129.github.io/blog/p/ib-perf-test/images/topo_hu_593e2cbffc5a91a6.jpg 1024w, https://charlie0129.github.io/blog/p/ib-perf-test/images/topo_hu_e2adfdb5ca88bf30.webp 1536w, https://charlie0129.github.io/blog/p/ib-perf-test/images/topo_hu_133ab95db94b548.jpg 1536w, https://charlie0129.github.io/blog/p/ib-perf-test/images/topo_hu_ca7e03894ccd3f51.webp 2020w, https://charlie0129.github.io/blog/p/ib-perf-test/images/topo_hu_552338335ed791f9.jpg 2020w"
loading="lazy"
alt="Topology"
class="gallery-image"
data-flex-grow="200"
data-flex-basis="480px"
>
&lt;/p>
&lt;p>We want to test the performance of the network between 2 nodes just to make sure it is working. We expect to see a bandwidth of around 200Gbps.&lt;/p>
&lt;p>Check the status of the Infiniband devices. Make sure at least one link is up (&lt;code>phys state: 5: LinkUp&lt;/code>) on both nodes.&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;span class="lnt">2
&lt;/span>&lt;span class="lnt">3
&lt;/span>&lt;span class="lnt">4
&lt;/span>&lt;span class="lnt">5
&lt;/span>&lt;span class="lnt">6
&lt;/span>&lt;span class="lnt">7
&lt;/span>&lt;span class="lnt">8
&lt;/span>&lt;span class="lnt">9
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-console" data-lang="console">&lt;span class="line">&lt;span class="cl">&lt;span class="go">root@tj01-h20-node139:/# ibstatus
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="go">Infiniband device &amp;#39;mlx5_7&amp;#39; port 1 status:
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="go"> default gid: fe80:0000:0000:0000:&amp;lt;redacted&amp;gt;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="go"> base lid: 0x6c
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="go"> sm lid: 0x4
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="go"> state: 4: ACTIVE
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="go"> phys state: 5: LinkUp
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="go"> rate: 200 Gb/sec (2X NDR)
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="go"> link_layer: InfiniBand
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>Check if both nodes are connected to the Subnet Manager. You should see the name of both nodes appear on the list.&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt"> 1
&lt;/span>&lt;span class="lnt"> 2
&lt;/span>&lt;span class="lnt"> 3
&lt;/span>&lt;span class="lnt"> 4
&lt;/span>&lt;span class="lnt"> 5
&lt;/span>&lt;span class="lnt"> 6
&lt;/span>&lt;span class="lnt"> 7
&lt;/span>&lt;span class="lnt"> 8
&lt;/span>&lt;span class="lnt"> 9
&lt;/span>&lt;span class="lnt">10
&lt;/span>&lt;span class="lnt">11
&lt;/span>&lt;span class="lnt">12
&lt;/span>&lt;span class="lnt">13
&lt;/span>&lt;span class="lnt">14
&lt;/span>&lt;span class="lnt">15
&lt;/span>&lt;span class="lnt">16
&lt;/span>&lt;span class="lnt">17
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-console" data-lang="console">&lt;span class="line">&lt;span class="cl">&lt;span class="go">root@tj01-h20-node139:/# ibnetdiscover
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="go">&lt;/span>&lt;span class="gp">#&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Topology file: generated on Fri Jul 19 02:49:25 2024&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="gp">#&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Initiated from node &amp;lt;redacted&amp;gt; port &amp;lt;redacted&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err">&lt;/span>&lt;span class="go">vendid=0x2c9
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="go">devid=0xd2f2
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="go">sysimgguid=0x9c05&amp;lt;redacted&amp;gt;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="go">switchguid=0x9c05&amp;lt;redacted&amp;gt;(9c05&amp;lt;redacted&amp;gt;)
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="go">Switch 129 &amp;#34;S-9c05&amp;lt;redacted&amp;gt;&amp;#34; # &amp;#34;MF0;CNTSN-POD229-QM97-IB-02:MQM9700/U1&amp;#34; enhanced port 0 lid 1 lmc 0
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="go">[1] &amp;#34;H-b83f&amp;lt;redacted&amp;gt;&amp;#34;[1](b83f&amp;lt;redacted&amp;gt;) # &amp;#34;tj01-4090-node005 mlx5_2&amp;#34; lid 22 2xNDR
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="go">[2] &amp;#34;H-946d&amp;lt;redacted&amp;gt;&amp;#34;[1](946d&amp;lt;redacted&amp;gt;) # &amp;#34;tj01-4090-node004 mlx5_2&amp;#34; lid 27 2xNDR
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="go">[3] &amp;#34;H-a088&amp;lt;redacted&amp;gt;&amp;#34;[1](a088&amp;lt;redacted&amp;gt;) # &amp;#34;tj01-4090-node006 mlx5_2&amp;#34; lid 10 2xNDR
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="go">[4] &amp;#34;H-946d&amp;lt;redacted&amp;gt;&amp;#34;[1](946d&amp;lt;redacted&amp;gt;) # &amp;#34;tj01-4090-node007 mlx5_2&amp;#34; lid 12 2xNDR
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="go">[6] &amp;#34;H-946d&amp;lt;redacted&amp;gt;&amp;#34;[1](946d&amp;lt;redacted&amp;gt;) # &amp;#34;tj01-4090-node009 mlx5_2&amp;#34; lid 11 2xNDR
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="go">...omitted
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>Make sure &lt;code>perftest&lt;/code> is installed.&lt;/p>
&lt;p>On one node:&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-console" data-lang="console">&lt;span class="line">&lt;span class="cl">&lt;span class="go">root@tj01-4090-node099:/# ib_send_bw --report_gbit -a -F -d mlx5_2
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;ul>
&lt;li>&lt;code>--report_gbit&lt;/code>: Show result in gigabit.&lt;/li>
&lt;li>&lt;code>-a&lt;/code>: Run sizes from 2 till 2^23.&lt;/li>
&lt;li>&lt;code>-F&lt;/code>: Do not show a warning even if cpufreq_ondemand module is loaded, and cpu-freq is not on max.&lt;/li>
&lt;li>&lt;code>-d&lt;/code>: Use IB device. To make sure you are using the device you want to test (if you have multiple IB devices like me).&lt;/li>
&lt;/ul>
&lt;p>On another node:&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-console" data-lang="console">&lt;span class="line">&lt;span class="cl">&lt;span class="go">root@tj01-h20-node139:/# ib_send_bw --report_gbit -a -F -d mlx5_2 tj01-4090-node099
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>&lt;code>tj01-4090-node099&lt;/code> is the IP address (hostname) of the other node.&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt"> 1
&lt;/span>&lt;span class="lnt"> 2
&lt;/span>&lt;span class="lnt"> 3
&lt;/span>&lt;span class="lnt"> 4
&lt;/span>&lt;span class="lnt"> 5
&lt;/span>&lt;span class="lnt"> 6
&lt;/span>&lt;span class="lnt"> 7
&lt;/span>&lt;span class="lnt"> 8
&lt;/span>&lt;span class="lnt"> 9
&lt;/span>&lt;span class="lnt">10
&lt;/span>&lt;span class="lnt">11
&lt;/span>&lt;span class="lnt">12
&lt;/span>&lt;span class="lnt">13
&lt;/span>&lt;span class="lnt">14
&lt;/span>&lt;span class="lnt">15
&lt;/span>&lt;span class="lnt">16
&lt;/span>&lt;span class="lnt">17
&lt;/span>&lt;span class="lnt">18
&lt;/span>&lt;span class="lnt">19
&lt;/span>&lt;span class="lnt">20
&lt;/span>&lt;span class="lnt">21
&lt;/span>&lt;span class="lnt">22
&lt;/span>&lt;span class="lnt">23
&lt;/span>&lt;span class="lnt">24
&lt;/span>&lt;span class="lnt">25
&lt;/span>&lt;span class="lnt">26
&lt;/span>&lt;span class="lnt">27
&lt;/span>&lt;span class="lnt">28
&lt;/span>&lt;span class="lnt">29
&lt;/span>&lt;span class="lnt">30
&lt;/span>&lt;span class="lnt">31
&lt;/span>&lt;span class="lnt">32
&lt;/span>&lt;span class="lnt">33
&lt;/span>&lt;span class="lnt">34
&lt;/span>&lt;span class="lnt">35
&lt;/span>&lt;span class="lnt">36
&lt;/span>&lt;span class="lnt">37
&lt;/span>&lt;span class="lnt">38
&lt;/span>&lt;span class="lnt">39
&lt;/span>&lt;span class="lnt">40
&lt;/span>&lt;span class="lnt">41
&lt;/span>&lt;span class="lnt">42
&lt;/span>&lt;span class="lnt">43
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">---------------------------------------------------------------------------------------
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> Send BW Test
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> Dual-port : OFF Device : mlx5_2
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> Number of qps : 1 Transport type : IB
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> Connection type : RC Using SRQ : OFF
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> PCIe relax order: ON
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> ibv_wr* API : ON
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> TX depth : 128
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> CQ Moderation : 100
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> Mtu : 4096[B]
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> Link type : IB
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> Max inline data : 0[B]
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> rdma_cm QPs : OFF
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> Data ex. method : Ethernet
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">---------------------------------------------------------------------------------------
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> local address: LID 0x6c QPN 0x0050 PSN 0xddd611
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> remote address: LID 0x28 QPN 0x0050 PSN 0xa3c746
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">---------------------------------------------------------------------------------------
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> #bytes #iterations BW peak[Gb/sec] BW average[Gb/sec] MsgRate[Mpps]
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> 2 1000 0.052812 0.050794 3.174618
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> 4 1000 0.080899 0.080547 2.517093
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> 8 1000 0.17 0.17 2.624748
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> 16 1000 0.35 0.35 2.741373
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> 32 1000 0.70 0.70 2.736427
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> 64 1000 1.62 1.62 3.159528
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> 128 1000 3.07 3.07 2.994503
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> 256 1000 5.46 5.46 2.663988
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> 512 1000 13.24 13.23 3.230121
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> 1024 1000 26.58 26.56 3.241834
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> 2048 1000 51.80 51.75 3.158744
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> 4096 1000 82.15 82.11 2.505647
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> 8192 1000 89.37 89.33 1.363014
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> 16384 1000 89.01 87.24 0.665597
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> 32768 1000 172.67 96.54 0.368268
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> 65536 1000 181.95 108.83 0.207586
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> 131072 1000 181.82 137.78 0.131399
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> 262144 1000 187.32 163.15 0.077797
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> 524288 1000 190.12 179.08 0.042696
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> 1048576 1000 191.18 187.28 0.022326
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> 2097152 1000 192.69 192.69 0.011485
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> 4194304 1000 195.53 195.53 0.005827
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> 8388608 1000 196.69 196.69 0.002931
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">---------------------------------------------------------------------------------------
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div></description></item></channel></rss>