原文地址:http://bbs.chinaunix.net/thread-216556-1-1.html
今天上新闻组,听别人说BIND自带了一个测试DNS服务器的工具。刚才大概看了一下该工具的说明文档,呵呵,向大家做个报告先
1.该工具所在目录
bind-9.2.2/contrib/queryperf(不知道BIND 8或BIND4是否带有该工具)
2.简介
该工具原本设计是用来测试权威DNS服务器的,但是也可以使用该工具来测试只缓存DNS服务器。我大概看了一下说明文档,简要介绍一下(建议阅读原文)。
1)测试环境:
建议在不同的机器上运行queryperf和DNS服务器,这样queryperf的执行就不会影响到DNS服务器的运行。建议把这两台机器放置在100M以上速度的环境中,并且在这两台机器之间最好不要有防火墙或者路由器等设备。这样测试的结果才能够更好地反映DNS服务器的执行速度。
2)配置服务器
关闭递归查询(这是用来测试权威服务器时需要的,如果你测试的是只缓存服务器,那当然不能关闭了)。在named.conf中的options语句中添加:
recursion no;
3)建立测试文件
说明文档中说最好建立一个有1w到100w条数据的测试文件,该文件的每一行其实就是一个查询,格式如下:
foo.com A
第一个字段是域名(这些域名最好是权威服务器所管理的区中的真实域名),第二个字段是查找类型。
其实queryperf的执行就是打开测试文件,一行一行的读取文件中的记录,然后再查找服务器,最后统计相关信息进行报告。
3.安装
该工具的安装非常的简单,进入bind-9.2.2/contrib/queryperf目录执行如下命令就可以了:
[root@andy queryperf]# ./configure [root@andy queryperf]# make
执行完如上命令后就可以看到目录中多了一个可执行文件――queryperf,这正是我们所需要的,继续
4.使用
1)建立测试文件
这是我建立的测试文档(文件名为:test),
[root@andy queryperf]# cat test www.andy.com A andy.com A andy.com NS andy.com MX fdsaf.andy.com A www.sohu.com NS jay.andy.com A dns.andy.com A
说明:这是我用来测试的,所以就只写了8条记录。“andy.com”是被测试的DNS服务器上的一个区,测试用的。各位在实际应用时,请做相应修改!
备注:
通过 #cat test1 >> test
#cat test >> test1
反复执行上述命令,test可迅速增加到100万行
2)测试
执行如下命令:
[root@andy queryperf]# ./queryperf –d test –s 192.168.0.113
说明:“-d”后面跟的是前面建立的测试文件的文件名:test
“-s”后面跟的是需要进行测试的服务器
结果如下:
DNS Query Performance Testing Tool Version: $Id: queryperf.c,v 1.1.1.2.2.2 2002/07/02 04:17:18 marka Exp $ [Status] Processing input data [Status] Sending queries [Status] Testing complete Statistics: Parse input file: once Ended due to: reaching end of file Queries sent: 8 queries Queries completed: 8 queries Queries lost: 0 queries Percentage completed: 100.00% Percentage lost: 0.00% Started at: Tue Dec 4 21:36:59 2003 Finished at: Tue Dec 4 21:36:59 2003 Ran for: 0.195633 seconds Queries per second: 40.892896 qps
本机实测结果
[root@yqsj-db queryperf]# ./queryperf -d test -s 10.82.38.15 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.82.38.15) [Timeout] Query timed out: msg id 88 [Timeout] Query timed out: msg id 94 [Timeout] Query timed out: msg id 100 [Timeout] Query timed out: msg id 103 [Timeout] Query timed out: msg id 109 [Status] Testing complete Statistics: Parse input file: once Ended due to: reaching end of file Queries sent: 807891 queries Queries completed: 807886 queries Queries lost: 5 queries Queries delayed(?): 0 queries RTT max: 0.105361 sec RTT min: 0.000251 sec RTT average: 0.004781 sec RTT std deviation: 0.002315 sec RTT out of range: 0 queries Percentage completed: 100.00% Percentage lost: 0.00% Started at: Wed Dec 5 15:45:59 2012 Finished at: Wed Dec 5 15:49:14 2012 Ran for: 195.045811 seconds Queries per second: 4142.032048 qps
[root@yqsj-db queryperf]# ./queryperf -d test -s 10.82.38.15 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.82.38.15) [Status] Testing complete Statistics: Parse input file: once Ended due to: reaching end of file Queries sent: 807891 queries Queries completed: 807891 queries Queries lost: 0 queries Queries delayed(?): 0 queries RTT max: 0.169378 sec RTT min: 0.000496 sec RTT average: 0.005021 sec RTT std deviation: 0.001086 sec RTT out of range: 0 queries Percentage completed: 100.00% Percentage lost: 0.00% Started at: Wed Dec 5 15:59:59 2012 Finished at: Wed Dec 5 16:03:22 2012 Ran for: 203.490201 seconds Queries per second: 3970.171517 qps