一、querperf简介

当我们把DNS服务器配置好后,我们肯定会想测试一下DNS服务器的性能如何,上线后如果请求数够多服务器还能否响应?于是,我们可以使用软件模拟环境,对DNS服务器作评估性的测试。在bind中,有一款自带的压力测试软件,queryperf。使用这款软件可以对DNS服务器作请求测试,并且使用方法简单,我们可以使用queryperf测试多次,取一个平均值,这样就算结果不准确,也不会和实际情况相差太大。

二、queryperf安装

1、queryperf是bind自带的测试软件,所以我们直接上官网下载bind,解压后就能找到queryperf的安装包。

1
wget http://www.isc.org/downloads/file/bind-9-8-7rc2/?version=tar.gz

2、不知道为什么,这个文件下载完成后的名字是这个,index.html\?version\=tar.gz,好吧我们解压吧。

1
tar xf index.html\?version\=tar.gz

3、解压后,找到目录 contrib ,bind自带的第三方软件全在这个目录里面,我们要用到的queryperf也在里面。

4、进入queryperf目录,开始编译安装。可以使用 ./configure -h 查看安装帮助,不过我们默认安装就行了。

1
./configure

1
make

5、通过上面的编译后,展开queryperf目录,在该目录下已经生成了一个queryperf的可执行文件。这个文件就是我们要用到的程序,我们把该程序移动到/usr/bin/目录下就可以使用了。

1
cp queryperf /usr/bin/

三、使用queryperf测试DNS服务器

在测试之前,我们先把DNS服务器架设好。我们以域名wubinary.com为例,架设DNS服务器,dns.wubinary.com。

1、wubinary.com区域的资源记录文件wubinary.com.zone内容如下。

2、测试DNS服务器能否正常使用。

重新启动服务:

测试域名blog.wubinary.com

DNS服务器工作正常,接下来可以使用queryperf作压力测试了。

3、queryperf使用格式:

1
queryperf [-d datafile] [-s server_addr] [-p port] [-q num_queries]

-d: 后面接上一个文件,文件的内容是用户对DNS的请求,一行为一条请求,所以为了测试,我们可以在里面写上几千几万条。

-s: DNS服务器地址

-p: DNS服务器端口

-q: 请求多少次

使用vim命令先创建一个请求文件:vim querytest.txt

这几条记录还远远不够,我们使用vim命令 1,$y 复制一下。

六百多万条了,开始测试吧。

4、性能测试。

执行命令:

1
queryperf -d querytest.txt -s 192.168.0.6

此时使用top命令可以看到CPU和内存的使用率。

结果如下:

测试过程完成,可以多测试几次取平均值。

四、性能测试总结

1、在作服务器的性能测试时,最好不要在服务器平台自身使用测试软件测试,最好换另外一台机器,这样CPU处理的结果会更准确。

2、测试时先预估平台会遇到的最大请求数,用这个请求数作测试,量力而为,因为如果服务器遇到大流量的DDOS,单一机器性能再好,也扛不住。

3、使用queryperf作性能测试时,最好测试多次,取平均值。

4、可以修改配置文件的部分参数测试,如,开启递归,开启查询日志等功能作测试。

5、其它开源测试工具,tcpcopy

使用queryperf对DNS服务器作压力测试的更多相关文章

  1. Web服务器性能/压力测试工具http_load、webbench、ab、Siege使用教程 - VPS侦探

    Web服务器性能/压力测试工具http_load.webbench.ab.Siege使用教程 - VPS侦探 http://soft.vpser.net/test/http_load/http_loa ...

  2. Web服务器性能压力测试工具http_load、webbench、ab、Siege使用教程

    Web服务器性能压力测试工具http_load.webbench.ab.Siege使用教程 作者: feng 日期: 2012/07/25 发表评论 (0) 查看评论   一.http_load 程序 ...

  3. Web服务器性能/压力测试工具http_load、webbench、ab、Siege、loadrunner

    回头看看 Web服务器性能/压力测试工具http_load.webbench.ab.Siege.loadrunner

  4. DNS视图及压力测试(四)

    Bind安全控制选项 Allow-transfer {}; #用于控制区域传送文件 Allow-query {}; #通常用于服务器是缓存名称服务器时,控制查询客户端 Allow-recursion ...

  5. Web服务器性能/压力测试工具http_load、webbench、ab、Siege使用教程

    一.http_load 程序非常小,解压后也不到100K http_load以并行复用的方式运行,用以测试web服务器的吞吐量与负载.但是它不同于大多数压力测试工 具,它可以以一个单一的进程运行,一般 ...

  6. Web服务器性能压力测试工具

    一.http_load 程序非常小,解压后也不到100K http_load以并行复用的方式运行,用以测试web服务器的吞吐量与负载. 但是它不同于大多数压力测试工具,它可以以一个单一的进程运行,一般 ...

  7. 几款Web服务器性能压力测试工具

    一.http_load 程序非常小,解压后也不到100K http_load以并行复用的方式运行,用以测试web服务器的吞吐量与负载. 但是它不同于大多数压力测试工具,它可以以一个单一的进程运行,一般 ...

  8. 介绍几款Web服务器性能压力测试工具

    一.http_load 程序非常小,解压后也不到100K http_load以并行复用的方式运行,用以测试web服务器的吞吐量与负载. 但是它不同于大多数压力测试工具,它可以以一个单一的进程运行,一般 ...

  9. 九款Web服务器性能压力测试工具

    一.http_load 程序非常小,解压后也不到100Khttp_load以并行复用的方式运行,用以测试web服务器的吞吐量与负载.但是它不同于大多数压力测试工具,它可以以一个单一的进程运行,一般不会 ...

随机推荐

  1. FZU 2195 检查站点

    求出根节点到每个叶子节点的距离,找到最大的.然后总权值减去最大叶子距离就是答案. GNU C++ AC Visual C++  TLE #include<stdio.h> #include ...

  2. 第一百零九节,JavaScript面向对象与原型

    JavaScript面向对象与原型 学习要点: 1.学习条件 2.创建对象 3.原型 4.继承 ECMAScript有两种开发模式:1.函数式(过程化),2.面向对象(OOP).面向对象的语言有一个标 ...

  3. POJ 2484 A Funny Game(找规律)

    题目链接 #include<iostream> #include<cstdio> using namespace std; int main() { int n; while( ...

  4. 与malloc有关的问题

    nefu 1026 申请动态空间存放字符串,将其排序后输出 http://acm.nefu.edu.cn/JudgeOnline/problemShow.php?problem_id=1026 #in ...

  5. Chapter7 迭代器

    结合泛型for的所有功能,写出更加简单,高效的迭代器. 1.迭代器和closure 迭代器是一种可以遍历集合中所有元素的机制.在Lua中用函数去表示它. 每调用一次,就返回下一个元素. 迭代器在两次成 ...

  6. 带宽 VS CDN (转载)

    并发的影响因素:带宽.web server(含php).static server.数据库 带宽价格: 静态IP企业宽带 5M 10M 50M 100M 200M 盛大云 华东双线 216/月 396 ...

  7. 9.创建一个三角形类,成员变量三边,方法求周长,创建类主类A来测试它。

    package com.hanqi.test; public class Triangle { private double a,b,c; public Triangle(double d,doubl ...

  8. JavaScript 事件 事件流 事件对象 事件处理程序 回调函数 error和try...catch和throw

    参考资料: 慕课网 DOM事件探秘    js事件对象 处理 事件驱动: JS是采用事件驱动的机制来响应用户操作的,也就是说当用户对某个html元素进行操作的时候,会产生一个时间,该时间会驱动某些函数 ...

  9. Quartz任务调度器及与Spring的整合使用

    参考  点击打开链接

  10. 新学的js精集

    逻辑运算符比较 逻辑与和逻辑或这两个逻辑运算符它不单单会输出布尔型数据 1.只要"||"前面为false,无论"||"后面是true还是false,结果都返回& ...