先日、ちょっとYAMAHAのルータを利用していて、DHCPサーバが死ぬということが起きました。
一斉にクライアントから再接続しに行ったところ、接続できなくなり、 確認してみたらDHCPでした、という感じです。
dhcpperfというDHCPの性能を測るツールを公開してくださっているので、 これを機会に調べてみたところです。
YAMAHAのルータ自体は、クリティカルなわけでもない箇所でDHCP/NAT箱として利用しているだけでしたので、 置き換えを検討しながら、いっそ仮想ルータに置き換えてしまっても問題ないのでは? ということで SEIL/x86とVyOSのDHCP性能も調べてみたところです。
仮想マシンは、AMD A10-7800 Windows10上のVMwareWorkstation上ですので、 もっと性能のいいサーバマシン上ではもう少し出るかもしれません。
結果だけ書いてしまうと
機器 | 性能 request/sec |
---|---|
RTX 3500 | 7, 8 |
SEIL/x86 | 96 |
VyOS | 113 |
というところでした。 YAMAHAルータの圧倒的な性能のなさが見せつけられました。 CPU bound な処理だろうから、クロックの低いルータのCPUではつらいという感じでしょうか
計測には
dhcpperf -v
DHCP pool は 172.16.0.0/16 を基準としています ただし、 SEIL/x86は pool の最大が 1021でしたので、 1021で計測しています。 計測中の状況を見るとに、SEIL/x86は clientのreleaseに応じてちゃんと解放しているようでしたので、 ちゃんと計測できているのではないかと思います。 VyOSの場合、clientのreleaseが来ても、どうも1日くらい(?)解放しないようで、poolサイズを小さくすると、 poolが尽きて応答が高速になるという現象に遭遇しました。
とりあえず3種比べてみましたが、手元に転がっているCisco Routerでも調べてみる予定です。
それはそうと、120秒間、100リクエストが来続けるとか、どんな環境でしょうね。 12000台のクライアントが2分の間に接続してくるような環境……