FreeBSDでL2ブリッジを有効にするとネットワーク性能が激烈に落ちるという話がある。なんでも、ブリッジの実装であるif_bridge(4)に存在するたくさんの最適化されてないロックのせいで性能劣化を引き起こしてるとか。
いやいや、いくら何でもそんなに変わらんやろ?と思い、ブリッジの有無でiperfしてみたら、ブリッジ有りの方でありえないほど遅くなって草も生えないんですが。
測定環境は下表の通り。ネットワークまわりのチューニングとかは特にしてない。
サーバ | クライアント | |
---|---|---|
OS | FreeBSD 12.0-RELEASE-p4 amd64 | Windows 10 Pro 1903 x64 |
CPU | Xeon E5-2648Lv3 | Ryzen 1700 |
NIC | ConnectX-3 Pro EN (L2SW経由で40Gb接続) | |
ソフト | iperf 2.0.13 | iperf 2.0.14a |
ご覧の通り、現状のif_bridgeは1GbEには十分だけど、10GbE以上の環境では完全ボトルネックとなってしまう。bhyve使うときに割と困るぞこれ…。