zoukankan      html  css  js  c++  java
  • DNS压力测试工具dnsperf简介

    dnsperf是我最近写的一个开源的DNS压力测试工具,用户可以用它来对DNS服务器或者Local DNS做压力测试。dnsperf目前的实现是单进程模式,通过epoll非阻塞地处理网络事件。

    dnsperf的地址:https://github.com/cobblau/dnsperf

    参数详解

    Dnsperf 支持下面的这些命令行参数:

    -s     用来指定DNS服务器的IP地址,默认值是127.0.0.1
    -p     用来指定DNS服务器的端口,默认值是53
    -d     用来指定DNS消息的内容文件,该文件中包含要探测的域名和资源记录类型,见下文
    -t      用来指定每个请求的超时时间,默认值是3000ms
    -Q     用来指定本次压测的最大请求数,默认值是1000
    -c     用来指定并发探测数,默认值是100. dnsperf会从-d指定的文件中随机选取100个座位探测域名来发送DNS请求.
    -l      用来指定本次压测的时间,默认值是无穷大。
    -e     本选项通过EDNS0,在OPT资源记录中运用edns-client-subnet来指定真实的client ip. 

    -i      用来指定前后探测的时间间隔,因为dnsperf是一个压测工具,所以本选项目前还不支持。
    -P     指定用哪个传输层协议发送DNS请求,udp或者tcp。默认值是udp
    -f      指定用什么地址类型发送DNS请求,inet或者inet6。默认值是inet
    -v     除了标准的输出外,还输出每个相应码的个数。
    -h     打印帮助

    数据文件示例:

    上文中提到,-d选项指定数据文件名,数据文件示例如下:

    # This is a comment and is ommited
    # The columns after column 2 will be ommited if one line contains more than 3 colums.
    www.app1.com A
    

    数据文件中以“#”开头的行被认为是注释行,会被dnsperf忽略。

    其中有效数据由两列组成,第一列是查询域名,第二列是查询的资源类型,dnsperf支持的资源类型如下:

    ANSMDMFCNAMESOAMBMGMRNULLWKSPTRHINFOMINFOMXTXTAAAASRVNAPTRA6ASFRMAILBMAILAANY.

    性能评测指标

    下图是一个示例输出:

    DNS Performance Testing Tool
    
    [Status] Processing query data
    [Status] Sending queries to 127.0.0.1:53
    time up
    [Status]DNS Query Performance Testing Finish
    [Result]Quries sent:        35650
    [Result]Quries completed:   35578
    [Result]Complete percentage:    99.80%
    
    [Result]Elapsed time(s):    1.00000
    
    [Result]Queries Per Second: 35650.0000
    

    标准输出中,queies sent是指本次探测发送的总请求数,queries completed是指本次探测收到响应的请求数,complete percentage是指本次探测的成功率(queies_completed/queries_sent),elapsed time是指本次探测的时间,queries per second是指本次探测的QPS。

    欢迎大家试用!

  • 相关阅读:
    截取
    逃避系统警察
    刷题
    排队
    侦察兵
    朋友
    楼层
    解码
    倒水
    魔法阵
  • 原文地址:https://www.cnblogs.com/cobbliu/p/3872255.html
Copyright © 2011-2022 走看看