dnsperf(DNS压力测试)

iceland

dnsperf and resperf

Usage

dnsperf and resperf read input files describing DNS queries, and send those queries to DNS servers to measure performance.

Dependencies

To install the dependencies under Debian/Ubuntu:

1
2
apt-get install -y libbind-dev libkrb5-dev libssl-dev libcap-dev libxml2-dev libjson-c-dev libgeoip-dev \
libprotobuf-c-dev libfstrm-dev liblmdb-dev

Building from Git repository

1
2
3
4
5
6
git clone https://github.com/DNS-OARC/dnsperf.git
cd dnsperf
./autogen.sh
./configure [options]
make
make install

Command

1
queryperf [-d datafile] [-s server_addr] [-p port] [-q num_queries]
  • -d: 后面接上一个文件,文件的内容是用户对DNS的请求,一行为一条请求,所以为了测试,我们可以在里面写上几千几万条。
  • -s: DNS服务器地址
  • -p: DNS服务器端口
  • -q: 请求多少次
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
:~$ vim querytest.txt
www.google.com A
www.bing.com A
www.bing.cn A
www.baidu.cn cname
www.zhutianwei.cn A
zhutianwei.cn NS
3evip.cn MX
pop3.3evip.cn cname
www.slimsmart.cn A
slimsmart.cn NS
www.7k9.cn A
test.7k9.cn A
pi.net A
:~$ # in vim, 1,$y,多复制几次,至少达到万条以上
:~$ queryperf -d querytest.txt -s 192.168.100.100

性能测试总结

  1. 在作服务器的性能测试时,最好不要在服务器平台自身使用测试软件测试,最好换另外一台机器,这样CPU处理的结果会更准确。
  2. 测试时先预估平台会遇到的最大请求数,用这个请求数作测试,量力而为,因为如果服务器遇到大流量的DDOS,单一机器性能再好,也扛不住。
  3. 使用queryperf作性能测试时,最好测试多次,取平均值。
  4. 可以修改配置文件的部分参数测试,如,开启递归,开启查询日志等功能作测试。
  5. 其它开源测试工具,tcpcopy

References:

  • dnsperf-github
  • dnsperf-webpage