CodingBox Q&A Ask question

Mesh MCX516A-CCAT di DAC 100G: lshw bilang 40Gbit/s dan satu stream iperf3 mentok di 21 Gbit/s

Asked Active Viewed 49 AI translation from English
2

Kami jalanin cluster tiga node dengan node-nodenya dikabelin langsung satu sama lain lewat DAC 100G, nggak ada switch di jalurnya, dan interface-nya dimasukin ke broadcast bond biar traffic replication punya fabric sendiri. Sebelum saya kasih beban beneran ke situ, saya mau baseline dulu, dan angka-angkanya nggak cocok satu sama lain.

  • 3x Mellanox ConnectX-5 EN, MCX516A-CCAT, dual-port QSFP28
  • satu DAC 100G di antara tiap pasangan node
  • host AMD EPYC, Proxmox di ketiganya

ethtool seneng-seneng aja:

# ethtool ens1
Settings for ens1:
        Supported link modes:   100000baseCR4/Full
        Advertised link modes:  100000baseCR4/Full
        Speed: 100000Mb/s
        Duplex: Full
        Link detected: yes

lshw enggak:

# lshw -class network
  *-network
       description: Ethernet interface
       vendor: Mellanox Technologies
       capacity: 40Gbit/s

Dan iperf3 di antara dua node-nya nangkring di kira-kira 21 Gbit/s, yang nggak deket sama sekali sama dua angka itu.

Udah dicoba:

  • pindahin kabelnya ke port kedua di dua-dua card, nggak ada perubahan
  • tukar pakai DAC lain tipe yang sama, nggak ada perubahan
  • link-nya tetap up sepanjang waktu, nggak ada error yang naik di counter-nya

Jadi yang mana dari dua alat itu yang bohong ke saya, dan saya harusnya ngejar kabelnya, card-nya, atau driver-nya?

Comments 5

Accepted answer

Nggak ada satu pun yang kamu post nunjuk ke DAC-nya. Ada dua hal yang nggak berhubungan kejadian di sini.

Pertama, soal ketidakcocokannya. lshw -class network nge-print angka capability yang dia itung sendiri, dan di card-card ini dia bakal enteng aja bilang capacity: 40Gbit/s soal link yang naik di 100G. Rate yang ternegosiasi itu yang ethtool laporin, dan punya kamu bilang Speed: 100000Mb/s dengan 100000baseCR4/Full advertised. Sisi itu udah bener, nggak ada yang perlu dibenerin.

Kedua, soal throughput-nya. Cek slot-nya dulu sebelum kamu sentuh apa pun yang lain:

# lspci -vv
        LnkCap: ... Speed 8GT/s ...
        LnkSta: ... Speed 2.5GT/s ... (downgraded)

Kalau LnkSta training di 2.5GT/s sementara LnkCap bilang 8GT/s, kamu ke-cap jauh di bawah kabelnya dan tuker-tukar kabel sebanyak apa pun nggak bakal bantu. Pasang ulang card-nya dan pastiin dia duduk di slot yang beneran dirouting buat full width.

Terus berhenti ngukur pakai satu stream doang:

# iperf3 -P 8 -c <peer>

Sekitar 21 Gbit/s itu kira-kira yang bisa dikasih satu core di kelas host ini, jadi angka itu sendirian nggak banyak cerita. Pantau CPU-nya selama run-nya dan lihat juga idle state-nya lagi ngapain: core yang jatuh ke C-state dalam di antara burst makan bandwidth beneran di rate segini.

3 Taiwanlinkeng56TW Show original (English) AI translation

Sebelum kamu pesan pengganti apa pun, post baris LnkSta dari lspci -vv buat card itu dan command line iperf3 yang persis kamu pakai. Satu stream di 100G ngukur satu CPU core doang, bukan link-nya, dan orang-orang buang waktu berhari-hari buat ini. Dan konfirmasi juga port kedua beneran bawa leg mesh yang lain selagi kamu test, bukannya nganggur: satu slot ngasih makan dua port 100G yang live itu budget yang beda dari satu port. Saya bakal parkir dulu lshw buat sekarang, itu bukan alat yang tepat buat pertanyaan ini.

3 United Arab Emirateslambdahawk88AE Show original (English) AI translation

Satu koreksi soal bagian C-state-nya: kalau host-nya EPYC, knob intel_idle yang di-paste ke setiap thread kayak gini nggak ngefek apa-apa buat kamu, driver itu sama sekali nggak ada di jalurnya di AMD. Lever yang jalan buat saya itu processor.max_cstate=2 di kernel command line. Ide yang sama, platform beda. Sisa post itu tetap berlaku, khususnya soal jangan baca rate ternegosiasi dari lshw.

2 SpainoptictechES Show original (English) AI translation

Failure yang agak beda, family hardware yang sama, layak disingkirin begitu slot-nya udah beres: mesh langsung dari port ConnectX-5 QSFP28 itu gampang banget salah di layer 3. Saya punya tiga node di MCX516A-CCA_Ax, firmware 16.35.4030 dengan driver DOCA 2.8.0, dikabelin pakai DAC copper MCP1600-C003E30L 3 m. Semua link lapor aktif di 100 Gbps dan nggak ada satu ping pun yang nyebrang. Keenam interface mesh-nya punya address dari satu subnet 10.5.5.x doang tanpa switch di mana pun di jalurnya, jadi kernel-nya nggak punya cara buat mutusin port fisik mana yang punya destination tertentu. Satu subnet per pasangan node, 10.5.5.x, 10.5.6.x, dan 10.5.7.x, dan itu mulai jalan. Layak jalanin ip a dan ip route di ketiga box-nya sebelum ada yang nyalahin copper-nya.

1 Ukrainerxnode71UA Show original (English) AI translation

Dua-duanya kena. lspci -vv nunjukin card-nya training di 2.5GT/s lawan LnkCap 8GT/s, jadi itu tersangka nomor satu. Saya pindahin card-nya ke slot lain di ketiga box-nya, LnkSta sekarang naik di 8GT/s, dan dengan iperf3 -P 8, pasangan node yang sama langsung ngelewatin angka single-stream-nya.

Saya juga nyerah sama broadcast bond-nya dan rebuild mesh-nya di Open vSwitch dengan RSTP. Dengan iperf disebar di tiga CPU thread dan dua-dua port, saya ngukur sekitar 95 Gbit/s sekarang, yang cukup deket sama line rate buat yang dikerjain cluster ini. lshw masih ngotot 40Gbit/s dan saya udah berhenti liatin itu.

1 United Kingdomcoaxpilot98GB Show original (English) AI translation
Log in to comment. Log in