オルタナティブ・ブログ > プログラマー社長のブログ >

プログラミングでメシが食えるか!?

ProDHCPとISC DHCP Serverの性能比較

»

昨日も少し紹介したDHCPサーバ製品:ProDHCPですが、このところ性能測定をしばらくしていなかったので、他の作業を進めながら測定してみました。

DHCPサーバは設定の内容により性能もかなり変わるので、今回は非常にシンプルに、

・200万IPを/24セグメント
・200万IPを/16セグメント

という設定を作成し、「起動・再起動に必要な時間」「払出性能」「メモリーサイズ」「リース情報ファイルサイズ」を観察してみました。フィルターなどは一切使っていないシンプルな設定です。ProDHCPはセグメント設定などはISCのDHCPサーバとほぼ同じ設定ファイルの形式ですので、プログラムで自動生成した同じconfファイルを使いました。

20140521_205707

起動に必要な時間は「設定ファイルを読む時間」「リース情報の準備をする時間」が大半を占めますが、2回目以降の起動では「前回のリース情報の引き継ぎ」が大きな割合を占めるようになります。ISCのDHCPサーバはHUPシグナルを与えて設定反映をすることができず、一度プログラムを終了して再び起動させるしかないのですが、リース情報が大きくなるほど時間がかかります。ISCのDHCPサーバのリース情報ファイルは変化があったものを追記していく形式なので、初回はほとんどデータがなく、速いのですが、リース情報が増えるとどんどん時間がかかるようになります。しかもテキスト形式ファイルなので処理が大変なのでしょう。これでも以前のバージョンよりはかなり速くなっている感じです。無理矢理全IPをリース状態にするようなdhcpd.leasesファイルを作って起動すると200万IPでは3分半以上かかってしまいます。回線事業者などでの実運用状態ではとても使えない状態になってしまいます。

ProDHCP開発のきっかけはこの「ISCのDHCPサーバでの設定反映の遅さ」だったので、当初から高速です。ProDHCPの場合はリース情報を常に全IP数分持ち、ファイルサイズの変化は稼働中にはありません。ProDHCPには評価用に全てを払出状態にするツールが含まれているので、それを使って全IPを払出状態にして設定反映を行ってもほとんど処理時間は変わらないのです。

払出性能に関しては、それほど大差ない感じですが、ProDHCPは小さいセグメントが多数ある状態ほど速く、大きなセグメントだとそれほど速くないという傾向です。実際に小さいセグメントがたくさんあるような使われ方が多かったのでそちらを優先してあるという感じです。ProDHCPにはリアルタイム冗長化同期機能もあり、それを使ってもネットワークの状況が良ければ(遠隔地同期などでなければ)払出性能もそれほど低下しません。

ProDHCPはメモリー使用量も少な目ですし、200万IPでも払出性能・設定反映性能とも問題ない能力で使っていただけると思います。

なお、今回の評価はサーバも負荷ツールも仮想マシンで動かしています。ProDHCPの運用はVM上で、というケースも増えてきています。

Comment(0)