dnsperf
github 地址:https://github.com/DNS-OARC/dnsperf
mac安装:brew install dnsperf
参数详解
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.
-P     指定用哪个传输层协议发送DNS请求,udp或者tcp。默认值是udp
-f      指定用什么地址类型发送DNS请求,inet或者inet6。默认值是inet
-v     除了标准的输出外,还输出每个相应码的个数。
-h     打印帮助
-f address family of DNS transport, inet or inet6 (default: any)
  -s the server to query (default: 127.0.0.1)
  -p the port on which to query the server (default: 53)
  -a the local address from which to send queries
  -x the local port from which to send queries (default: 0)
  -d the input data file (default: stdin)
  -c the number of clients to act as
  -T the number of threads to run
  -n run through input at most N times
  -l run for at most this many seconds
  -b socket send/receive buffer size in kilobytes
  -t the timeout for query completion in seconds (default: 5)
  -e enable EDNS 0
  -E send EDNS option
  -D set the DNSSEC OK bit (implies EDNS)
  -y the TSIG algorithm, name and secret
  -q the maximum number of queries outstanding (default: 100)
  -Q limit the number of queries per second
  -S print qps statistics every N seconds
  -u send dynamic updates instead of queries
  -v verbose: report each query to stdout
数据文件示例:
上文中提到,-d选项指定数据文件名,数据文件示例如下:
| 1 2 3 | # 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.
如果请求很多次,要写入非常多域名,如
性能评测指标
下图是一个示例输出:
| 1 2 3 4 5 6 7 8 9 10 11 12 13 | DNS Performance Testing Tool[Status] Processing query data[Status] Sending queries to 127.0.0.1:53timeup[Status]DNS Query Performance Testing Finish[Result]Quries sent:        35650[Result]Quries completed:   35578[Result]Complete percentage:    99.80%[Result]Elapsed time(s):    1.00000[Result]Queries Per Second: 35650.0000 | 
标准输出中,queies sent是指本次探测发送的总请求数,queries completed是指本次探测收到响应的请求数,complete percentage是指本次探测的成功率(queies_completed/queries_sent),elapsed time是指本次探测的时间,queries per second是指本次探测的QPS。
dnsperf的更多相关文章
- DNS压力测试工具dnsperf简介
		dnsperf是我最近写的一个开源的DNS压力测试工具,用户可以用它来对DNS服务器或者Local DNS做压力测试.dnsperf目前的实现是单进程模式,通过epoll非阻塞地处理网络事件. dns ... 
- 一个DNS统计,RCFs,工具站点
		RCFs http://www.statdns.com/rfc/ DNS resources A collection of DNS related resources DNS Servers Nam ... 
- R&S学习笔记(一)
		1.一个VRF有两个主要的组成部分:路由区分符RD和路由目标RT.一个路由区分符(RD)是一个数字,除了帮助识别在一个提供商的网络中的VPN和允许重叠 IP区域之外没有其它的含义.RD是一个分为两个部 ... 
- 制作iis自动安装包
		原文:制作iis自动安装包 MS 一直没有提供可独立安装的 IIS 安装包,Windows 的缺省安装没有安装它,通常要到控制面板的"添加/删除 Windows 程序"中去选择安装 ... 
- mac 安装geckodriver和chromedriver
		Last login: Fri Apr :: on ttys000 (base) localhost:~ ligaijiang$ env TERM_PROGRAM=Apple_Terminal SHE ... 
- 我是如何将页面加载时间从6S降到2S的?
		写在前面 生活在信息爆炸的今天,我们每天不得不面对和过滤海量的信息--无疑是焦躁和浮动的,这就意味着用户对你站点投入的时间可能是及其吝啬的(当然有一些刚需站点除外). 如何给用户提供迅速的响应就显得十 ... 
- lvs+keepalived+bind实现负载均衡高可用智能dns【转】
		转:https://www.cnblogs.com/mikeluwen/p/7068356.html 整体架构: 1.IP地址规划: Dns1:172.28.0.54 Dns2:172.28.0.55 ... 
- Cloudflare发布全球最快的DNS
		宣布1.1.1.1:速度最快,隐私优先的消费者DNS服务 Cloudflare的使命是帮助建立更好的互联网.今天我们很高兴能够在推出1.1.1.1--互联网最快,首先保护隐私的消费者DNS服务的同 ... 
- lvs+keepalived+bind实现负载均衡高可用智能dns
		整体架构: 1.IP地址规划: Dns1:172.28.0.54 Dns2:172.28.0.55 Dr服务器主:172.28.0.57 Dr服务器从:172.28.0.67 Vip:172.28.0 ... 
随机推荐
- Postman安装使用
			下载链接:https://www.getpostman.com/downloads/ 选择下载的版本 postman基础功能介绍 collection在postman里面相当于一个文件夹,可以把同一个 ... 
- netcore添加api帮助文档页-Swagger
			1. 添加NuGet包 1)最基本的包:Swashbuckle.AspNetCore.Swagger 2)扩展包:Swashbuckle.AspNetCore.SwaggerGen和Swashbuck ... 
- 一文读懂Java线程状态转换
			前言 本文描述Java线程线程状态及状态转换,不会涉及过多理论,主要以代码示例说明线程状态如何转换. 基础知识 1. 线程状态 Thread源码中的状态说明: 线程可以有6种状态: New(新建) R ... 
- Go函数篇
			1 定义格式 函数构成代码执行的逻辑结构.在Go语言中,函数的基本组成为:关键字func.函数名.参数列表.返回值.函数体和返回语句. Go 语言函数定义格式如下: func FuncName(/*参 ... 
- vue.js 打包时出现空白页和路径错误
			vue-cli输入命令:npm run build 即可打包vue.js的项目 打包出来后项目中就会多了一个文件夹dist,下图为我们打包过后的项目 我们直接运行打包后的文件夹中的index.ht ... 
- javascript实现blob加密视频源地址
			一.HTML代码: <video id="my-video" class="video-js" playsinline controls preload= ... 
- linux线程回收
			int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine) (void *), v ... 
- thinkphp5 + barcode 生成条形码
			1.去官网下载类库 “https://www.barcodebakery.com/en/download”,选择自己的版本下载 2.解压放到“E:\phpstudy\PHPTutorial\WWW\g ... 
- (原)堆叠hourglass网络
			转载请注明出处: https://www.cnblogs.com/darkknightzh/p/11486185.html 论文: https://arxiv.org/abs/1603.06937 官 ... 
- volume create: k8s-volume: failed: Host 172.31.182.142 is not in 'Peer in Cluster' state
			问题描述: 1.gluster peer status查询存在节点 2.创建volume失败提示节点不存在 排查方法: 1.hosts文件是否配置正确 2.检查防火墙是否打开,打开的话放行24007端 ... 
