1、dnsperf简介
DNSPerf(DNS Performance)来自Prospect One公司,刚好最近研究 DNS 又想起这项服务。DNSPerf 从全世界超过两百个城市节点来检测各个 DNS 速度、反应时间及上线率(Uptime),除此之外,DNSPerf 还有针对一般使用者会用到的开放式 DNS 解析服务(Public DNS)进行监测记录,比较令我感到意外的是解析速度方面OpenDNS居然还比Google DNS来得更快!有兴趣的朋友可以到 DNSPerf 看看测试结果,对于读者来说还是蛮有参考价值的。dnsperf目前的实现是单进程模式,通过epoll非阻塞地处理网络事件。
2、安装程序 ?[root@docker-03 ~]# yum install dnsperf 3、参数详解 ?## 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? ? 打印帮助 4、数据文件示例
-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支持的资源类型如下:
A,NS,MD,MF,CNAME,SOA,MB,MG,MR,NULL,WKS,PTR,HINFO,MINFO,MX,TXT,AAAA,SRV,NAPTR,A6,ASFR,MAILB,MAILA,ANY
5、性能评测指标 ?[root@RedHat_test opt]# dnsperf -c 1000 -d testfile -s 172.17.0.98?DNS Performance Testing Tool?Version?2.3.2??[Status] Command line: dnsperf?-c1000-dtestfile?-s172.17.0.98?[Status] Sending queries (to?172.17.0.98)?[Status] Started at: Wed Jan?1515:34:50?2020?[Status] Stopping after?1run through file?[Status] Testing complete (end of file)??Statistics:??Queries sent: ? ? ? ??325336?Queries completed: ? ?325336(100.00%)?Queries lost: ? ? ? ??0(0.00%)??Response codes: ? ? ? NOERROR?325336(100.00%)?Average packet size: request?29, response?75?Run time (s): ? ? ? ??3.624032?Queries per second: ??89771.834244??Average Latency (s): ?0.000990 (min?0.000335, max?0.016325)?Latency StdDev (s): ??0.000441 1、queryperf简介
在认真的鸡翅d中,有一款自带的压力测试软件,queryperf。使用这款软件可以对DNS服务器作请求测试,并且使用方法简单,我们可以使用queryperf测试多次,取一个平均值,这样就算结果不准确,也不会和实际情况相差太大。
2、安装程序 ?[root@docker-03 ~]# cd /usr/local/src?[root@docker-03 src]# wget http://ftp.isc.org/isc/认真的鸡翅d9/9.12.1/认真的鸡翅d-9.12.1.tar.gz?[root@docker-03 src]# tar -zxvf 认真的鸡翅d-9.12.1.tar.gz?[root@docker-03 queryperf]# cd /usr/local/src/认真的鸡翅d-9.12.1/contrib/queryperf?[root@docker-03 queryperf]# ./configure?[root@docker-03 queryperf]# make?[root@docker-03 queryperf]# cp queryperf /usr/认真的鸡翅 3、参数详解 ?## queryperf [-d datafile] [-s server_addr] [-p port] [-q num_queries]?-d: 后面接上一个文件,文件的内容是用户对DNS的请求,一行为一条请求,所以为了测试,我们可以wrdkfd写上几千几万条。?-s: DNS服务器地址?-p: DNS服务器端口?-q: 指定查询的输出的最大数量 4、sh批量生产记录 ?[root@docker-03 queryperf]# cat gen_record.sh??#!/认真的鸡翅/sh?#a_record=”ns2.paiconf.com”??a_record=$1?num=$2?file_path=$3??if[?${a_record}-a${num}-a${file_path}];?then?var=1?while[?$var-le${num}]?do?echo”${a_record}A “>>?${file_path}?var=$(($var+ 1 ))?done?else?? ?echo”use: ./sh [a_record] [num] [file_path]”?fi 5、使用方法 ?[root@docker-03 queryperf]# chmod -R 777 gen_record.sh??[root@docker-03 queryperf]# ./gen_record.sh www.baidu.com 10000 dnstest.txt?[root@docker-03 queryperf]# queryperf -d dnstest.txt -s 172.17.0.98??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?172.17.0.98)?[Status] Testing complete??Statistics:??Parse input file: ? ? once?Ended due to: ? ? ? ? reaching end of file??Queries sent: ? ? ? ??10000queries?Queries 便宜美国vps completed: ? ?10000queries?Queries lost: ? ? ? ??0queries?Queries delayed(?): ??0queries??RTT max: ? ? ? ??0.011268 sec?RTT min: ? ? ? ? ? ? ?0.000267 sec?RTT average: ? ? ? ? ?0.000417 sec?RTT std deviation: ? ?0.000466 sec?RTT out of range: ? ??0queries??Percentage completed:?100.00%?Percentage lost: ? ? ? ?0.00%??Started at: ? ? ? ? ? Wed Jan?1518:31:55?2020?Finished at: ? ? ? ? Wed Jan?1518:31:56?2020?Ran?for: ? ? ? ? ? ? ?0.226052 seconds??Queries per second: ??44237.609046 qps
如果文章有任何错误欢迎不吝赐教,其次大家有任何关于运维的疑难杂问,也欢迎和大家一起交流讨论。关于运维学习、分享、交流,笔者开通了微信公众号【运维猫】,感兴趣的朋友可以关注下,欢迎加入,建立属于我们自己的小圈子,一起学运维知识。落后的毛衣还经营一家猫小铺饰品店,喜欢的小伙伴欢迎????前来下单。
扫描二维码
获取更多精彩
运维猫公众号
有需要技术交流的小伙伴可以加我微信,期待与大家共同成长,本人微信:
扫描二维码
添加私人微信
运维猫博主
扫码加微信
最近有一些星友咨询我知识星球的事,我也想继续在星球上发布更优质的内容供大家学习和探讨。运维猫公众号平台致力于为大家提供免费的学习资源,知识星球主要致力于即将入坑或者已经入坑的运维行业的小伙伴。
点击阅读原文? 查看更多精彩内容!!!
76026003