DNS圧力試験ツール:queryperf


1.概要
DNSサーバを構成したら、DNSサーバのパフォーマンスをテストしたいに違いありません.オンラインになってから、リクエスト数が十分であれば、応答できますか?そこで,ソフトウェアシミュレーション環境を用いてDNSサーバを評価的にテストすることができる.bindには、独自の圧力テストソフト、queryperfがあります.このソフトウェアを使用してDNSサーバをリクエストテストすることができ、使用方法が簡単で、queryperfを使用して何度もテストし、平均値を取ることができます.これにより、結果が正確でなくても、実際の状況とあまり差がありません.
2.インストール
  • ダウンロードアドレス:http://www.isc.org/downloads/
  • 公式サイト:http://www.isc.org/downloads/bind/

  • ダウンロードコマンド:
      wget https://www.isc.org/downloads/file/bind-9-11-0/?version=tar-gz

    3.コンパイル
     tar xf bind-9.11.0.tar.gz 
     cd bind-9.9.9-P1/contrib/queryperf/
     ./configure
     make

    コンパイルするとqueryperfディレクトリの下にqueryperfという実行可能ファイルが生成されます.このファイルは私たちが使用するコマンドプログラムファイルです.このファイルをコマンドパス(/usr/bin:/root/binなど)に移動すれば使用できます.移動しない場合は、ファイルを実行するときにフルパスでなければなりません.
     cd bind-9.9.9-P1/contrib/queryperf/ 
     cp queryperf /usr/bin/

    4.queryperfコマンド
    フォーマットの使用:
     queryperf [-d datafile] [-s server_addr] [-p port] [-q num_queries]

    -d:次のファイルに続きます.ファイルの内容はDNSに対するユーザーの要求で、行為の要求なので、テストのために数千万件を書くことができます.
    -s:DNSサーバアドレス
    -p:DNSサーバポート
    -q:何回お願いしますか
    5.テスト
    テスト環境:DNSサーバーの構築完了(IP:10.0.0.0.11)、ドメイン名view.viewlnh.comを例にとると、具体的な操作は以下の通りである.
    vimを使用してリクエストファイルを編集する
    [root@dns queryperf]# vim test1.txt 
    view.viewlnh.com A
    view.viewlnh.com A
    view.viewlnh.com A
    view.viewlnh.com A
    ........
      .........
        .........

    以上の4つのレコードでは十分ではありません.yy 100 pを使用してマルチポイントをコピーできます.
    [root@dns queryperf]# wc -l test1.txt 
    1001000 test1.txt              #<== 100 , 

    ==>テストの開始:
    コマンドの実行:
    queryperf -d test1.txt -s 10.0.0.11

    結果は次のとおりです.
    DNS Query Performance Testing Tool
    Version: $Id: queryperf.c,v 1.12 2007/09/05 07:36:04 marka Exp $
    
    [Status] Processing input data
    [Status] Sending queries (beginning with 10.0.0.11)
    [Status] Testing complete
    
    Statistics:
    
      Parse input file:     once
      Ended due to:         reaching end of file
    
      Queries sent:         1001000 queries        #<==  
      Queries completed:    1001000 queries        #<==  
      Queries lost:         0 queries
      Queries delayed(?):   0 queries
    
      RTT max:              0.162247 sec
      RTT min:              0.000020 sec
      RTT average:          0.001344 sec
      RTT std deviation:    0.001493 sec
      RTT out of range:     0 queries
    
      Percentage completed: 100.00%                #<==  
      Percentage lost:        0.00%                #<==  
    
      Started at:           Sat Oct  8 14:55:30 2016
      Finished at:          Sat Oct  8 14:56:37 2016
      Ran for:              67.593280 seconds
    
      Queries per second:   14809.164461 qps       #<==  

    このテストプロセスが完了したら、複数回テストして平均値を取ることもできます.
    六、性能テストのまとめ
    1、サーバーの性能テストを行う時、サーバープラットフォーム自身でテストソフトウェアテストを使用しないほうがよく、別の機械を交換したほうがよく、CPU処理の結果がより正確になる.
    2、テストの时にプラットフォームが出会う最大の要求数を予测して、この要求数でテストして、力を量って、サーバーが大きい流量のDDOSに出会うならば、単一の机械の性能はどんなに良くても、担ぐことができません.
    3、queryperfを使用して性能テストを行う場合は、複数回テストし、平均値をとることが望ましい.
    4、プロファイルのパラメータテストの一部を変更することができます.例えば、再帰を開き、クエリーログを開くなどの機能をテストします.
    5、その他のオープンソーステストツール、tcpcopy
    参考資料:http://www.it165.net/admin/html/201403/2545.html