DNS壓力測試工具--DNSperf
1、dnsperf簡介
DNSPerf(DNS Performance)來自Prospect One公司,剛好最近研究 DNS 又想起這項服務。DNSPerf 從全世界超過兩百個城市節點來檢測各個 DNS 速度、反應時間及上線率(Uptime),除此之外,DNSPerf 還有針對一般使用者會用到的開放式 DNS 解析服務(Public DNS)進行監測記錄,比較令我感到意外的是解析速度方面OpenDNS居然還比Google DNS來得更快!有興趣的朋友可以到 DNSPerf 看看測試結果,對於讀者來說還是蠻有參考價值的。dnsperf目前的實現是單進程模式,通過epoll非阻塞地處理網絡事件。
2、安裝程序
<code> [root@docker-03
~]/<code>
3、參數詳解
<code> ##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
-i
用來指定前後探測的時間間隔,因為dnsperf
是一個壓測工具,所以本選項目前還不支持-P
指定用哪個傳輸層協議發送DNS
請求,udp
或者tcp
。默認值是udp
-f
指定用什麼地址類型發送DNS
請求,inet
或者inet6
。默認值是inet
-v
除了標準的輸出外,還輸出每個相應碼的個數-h
打印幫助/<code>
4、數據文件示例
-d選項指定數據文件名,數據文件示例如下,測試的次數和域名拷貝次數要一樣:
<code>www
.app1.com A/<code>
數據文件中以“#”開頭的行被認為是註釋行,會被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
5、性能評測指標
<code>[root@RedHat_test
opt]#
dnsperf
-c
1000
-d
testfile
-s
172.17
.0
.98
DNS
Performance
Testing
Tool
Version
2.3
.2
[Status]
Command line:
dnsperf
-c1000-dtestfile
-s172.17.0.98
[Status]
Sending
queries
(to
172.17
.0
.98
)
[Status]
Started at:
Wed
Jan
1515
:34:50
2020
[Status]
Stopping
after
1run
through
file
[Status]
Testing
complete
(end
of
file)
Statistics:
Queries sent:
325336
Queries completed:
325336
(100.00%)
Queries lost:
0
(0.00%)
Response codes:
NOERROR
325336
(100.00%)
Average packet size:
request
29
,
response
75
Run
time
(s):
3.624032
Queries per second:
89771.834244
Average
Latency
(s):
0.000990
(min
0.000335
,
max
0.016325
)
Latency
StdDev
(s):
0.000441
/<code>