|
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.11),以域名view.viewlnh.com为例,具体操作如下:
使用vim编辑一个请求文件
[iyunv@dns queryperf]# vim test1.txt
view.viewlnh.com A
view.viewlnh.com A
view.viewlnh.com A
view.viewlnh.com A
........
.........
.........
以上的4条记录远远不够,可以使用yy100p复制多点
[iyunv@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
|
|
|
|
|
|
|