====== FreeBSDのif_bridgeが5倍速くなるらしい ====== FreeBSDのネットワークブリッジ機能、if_bridge(4)が遅いってのは[[[[blog:2020:2020-03-11|以前書いた]]とおりなのだけど、今後、おおむね5倍に高速化される見込みらしい。 [[https://www.freebsdfoundation.org/blog/500-if_bridge-performance-improvement/|FreeBSD Foundationの記事]]によれば、現状のif_bridgeは、重いBRIDGE_LOCK mutexのせいで、CPUのコア数によらずスループットは最大3.7Mpps程度に制限される。この度、Kristof ProvostがFreeBSD 13-CURRENT上でロックフリーの[[https://www.freebsd.org/cgi/man.cgi?query=epoch|epoch(9)]]を使った実装にしたところ、概ね18.6Mppsのパケットフォワードが行え、5倍の改善となったとのこと。 これはなかなかムネアツ。 一方で、現状の実装でも3.7Mpps出るってことは、最大フレームなら理屈上41Gbpsの帯域を有するハズ。にもかかわらず、iperfの実測で3.5Gbpsほどに止まるのは何でだろーなー。全二重通信で帯域が分割される点を考慮しても低すぎのような気が。 ===== 参考サイト ===== * [[https://www.freebsdfoundation.org/blog/500-if_bridge-performance-improvement/|5x if_bridge Performance Improvement | FreeBSD Foundation]] * [[https://www.freebsd.org/cgi/man.cgi?query=epoch|epoch - FreeBSD Manual Pages]]