DNS 按鈕顯示域名服務器,然后單擊
DNS壓力測試工具--DNSperf
1、dnsperf簡介
DNSPerf(DNS Performance)來自Prospect One公司,剛好最近研究 DNS 又想起這項服務。DNSPerf 從全世界超過兩百個城市節點來檢測各個 DNS 速度、反應時間及上線率(Uptime),除此之外,DNSPerf 還有針對一般使用者會用到的開放式 DNS 解析服務(Public DNS)進行監測記錄,比較令我感到意外的是解析速度方面OpenDNS居然還比google DNS來得更快!有興趣的朋友可以到 DNSPerf 看看測試結果,對于讀者來說還是蠻有參考價值的。dnsperf目前的實現是單進程模式,通過epoll非阻塞地處理網絡事件。
2、安裝程序
[root@Docker-03 ~]# yum install dnsperf
3、參數詳解
## 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 打印幫助
4、數據文件示例
-d選項指定數據文件名,數據文件示例如下,測試的次數和域名拷貝次數要一樣:
# 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
5、性能評測指標
[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