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

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

久しぶりにProDHCPの性能測定&結果公表!

»

先日、お客さんから依頼を受け、ProDHCPの性能評価をあらためて行いました。

お客さんから指定された、約10万サブネット、約520万IPのdhcpd.confを使った評価です。基本的にProDHCPは1サーバでの管理IP数は100万IP程度が快適に動く規模としており、300万IPまでは普通に使える状態。それ以上は推奨しないとしていますので、520万IPはかなりの規模超過です。。

ProDHCP実行環境

IBM System x3650 M3 モデル PLQ EXPRESS
・CPU :Xeon-E5645 2.4GHz 6Core×12スレッド
・mem:12GB
・DISK:146GB SAS×4本
・NIC:オンボード 4ポート(2ポートを追加)
・OS:CentOS6.2 x86_64
・DHCP Server 6.1(2011年頃のバージョン)
・DHCP Server 9.1(最新版)

負荷試験環境(dhcperfを使用)

同等のサーバ機のVM環境に、CentOS5.8 i386を入れて実行(dhcperfは32ビット環境でしか使えないため)。

せっかくなので、ProDHCPは古いバージョンと最新版で評価してみました。

設定反映速度(稼働中にHUPシグナルを与えて、confを読み直してリース情報を再構築するのに必要な時間)

6.1:約7分50秒
9.1:約6分30秒

10万サブネットもあるとconfファイルを読むだけでもかなりの時間がかかります。約70万行、約20Mbytesくらいです。さらにリース情報の再構築も、IP数の二乗に比例する感じでかかりますので、実は推奨を300万IPくらいとしているのは、この設定反映時間がポイントなのです。100万IP程度なら1秒かからずに終了することがほとんどです。

払い出し性能

6.1:対象セグメントがconfの先頭にある場合:約650リース/秒
6.1:対象セグメントがconfの末尾にある場合:約250リース/秒

9.1:対象セグメントがconfの先頭にある場合:約650リース/秒
9.1:対象セグメントがconfの末尾にある場合:約250リース/秒

バージョンの新旧によらず、大体同じ性能でした。2つのバージョンには3年くらいの期間があり、かなりの機能追加がされていますので、同じくらいというのは、作者としては大満足です。払い出し対象サブネットがconfの先頭付近か末尾側かで差が出ます。

9.1のサブネットハッシュ版

9.1:対象セグメントがconfの先頭にある場合:約850リース/秒
9.1:対象セグメントがconfの末尾にある場合:約750リース/秒

実は最近サブネットを細かく分けるタイプの回線事業者さんが以外と多いのと、IPv6版ではさらにサブネットが多い傾向があるので、リース情報のサブネット検索をハッシュ検索を使うようにしたバージョンもあり、そちらで評価すると、払い出しサブネットの位置はほとんど影響がなくなり、しかも高速になります。なぜこちらのバージョンを標準にしていないかというと、サブネット数が少ない場合はこちらの方が若干遅いため、上位互換の観点から今のところサブネットハッシュを使わない方を標準にしています(IPv6版はサブネットハッシュを使う方が標準)。

ということで、最新版でも性能は全く落ちていないのと、払い出し性能は相変わらずかなりの高性能、ということが確認できたのでした!

設定反映時間が気にならなければ(稼働開始後ほとんど設定変更はしないとか)500万IPでも払い出し性能は満足できると思いますが、当社としては基本的に100万IPくらいで分割して、複数のライセンスをお使いいただかないと儲からないのですよねぇ。それならそういうライセンス体系にすべきとよく言われますが、せっかく高性能なのに、ライセンスによってあえて制限を設けるのも技術者としては気分が乗らないのと、ライセンスの管理が面倒なので(よく、商売っ気がないと言われます・・・)。まあ、満足してお使いいただければ、立派な社会貢献ということで。。

こういうことはブログではなく製品ホームページにでも書くべきなのでしょうけれど、ホームページは編集が面倒なのですよねぇ。

Comment(0)