トップ «前の日記(2022-10-21) 最新 次の日記(2022-10-28)» 編集

Orz日記 by Akio Morita

ToDo:

  • 15 SAD Fit[]回りの障害事例の解析
  • 10 smart pointer版PEGクラスの再実装(Left Recursionまわり)
2006|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|06|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|07|08|09|10|11|12|
2013|01|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|06|07|08|10|12|
2016|01|02|03|05|06|08|10|11|
2017|01|02|03|04|05|06|07|09|10|11|12|
2018|01|02|03|04|06|07|08|09|10|11|12|
2019|01|03|04|05|07|08|09|10|11|12|
2020|01|02|03|04|05|06|07|08|09|10|11|12|
2021|01|02|03|04|05|06|07|08|09|10|11|12|
2022|01|02|03|04|05|06|07|08|09|10|11|12|
2023|01|02|03|04|05|06|07|08|09|10|11|12|
2024|01|02|03|04|05|06|07|08|09|

2022-10-21 [長年日記]

_ [FreeBSD]net/aquantia-atlantic-kmod with multi core

aq driverは、iflibフレームワークで動いているので、デフォルトのTX/RX queueの数は接続バス上のプロセッサのコア数になっている

Ryzen 3700X(8C)からRyzen 5950X(16C)への換装で、 queueが 8個から 16個に増えたら通信障害が多発

症状は、TCPはすごく遅い(多分再送多発っぽぃ)とか、外向きのpingは問題ない(ように見える)が、外部からのping着信に答えないなど

どうも、TX/RX queueが増えてもハードウェア的にハンドル出来ていない模様…

本来は、aq driver側でNICがサポート可能な最大 queue数を iflibフレームワークに伝えるべきなのだろう

当座のワークアラウンドは、iflibフレームワークのtuning knobで TX/RX queueを動作実績のある数まで絞る(例えば、8 queue)

dev.aq.0.iflib.override_nrxqs=8
dev.aq.0.iflib.override_ntxqs=8

sysctl(1)でも書き込める変数なのだが、iflib(4)に書かれている通り、参照されるのはドライバ初期時なので、/boot/loader.confに記述するか aq driverをロードする前にkenv(8)で設定するのが正解(ロード前は、sysctlノードはまだ生えていないぞ!)

netioによるTCP接続ベンチマークで、X550-T2とかだと普通に10Gbpsまで伸びるGen3 x4バス接続で、3~4Gbpsまでしか出ないのが難なのだが、現時点でWoL出来る10G PCIe NIC Cardってこれしか見つけていない Orz

2.5Gだと、I225とかRealtek 8125辺りはオンボード実装でWoLサポートしているので、WoLできるPCIe Cardがあるかも知れんが、速度的にはAQC107ほんの少し速い罠 (NBASE-T対応10Gスイッチなので、素直に性能が出る5GBASE-TなWoL PCIe NIC出てきたら考えるかも)

いや、一応複数ストリームなら 9Gbps越えしてくるから、rsync複数立てとかだと性能が出るのだが、Tbyte級のファイルをNFS越に流し込むとかのケースで性能が頭打ちに (X550とかだともう少し素直に性能が伸びる)

状況的には、aq driver - userland間のコンテキストスイッチコストや転送遅延もしくは、RX/TX queue 1本辺りの処理帯域でリミットがかかっているのだろうが…

RX/TX queueを 1個にして試したけど、single TX/RX queueでも複数ストリームなら 9Gbps越えてくるので、aq driver - userland間の転送帯域で限界が来てるぽぃ


カテゴリー: Admin | Emacs | EPICS | Fortran | FreeBSD | GCC | hgsubversion | IPv6 | KEKB | LHC | Lisp | LLVM | MADX | Ryzen | SAD | samba | tDiary | unix | WWW | YaSAI | お仕事 | イベント | 出張 | 宴会 | 数学 | 艦これ | 買いもの | 追記 | 雑記