DNS壓力測試工具dnsperf簡介


dnsperf是我最近寫的一個開源的DNS壓力測試工具,用戶可以用它來對DNS服務器或者Local DNS做壓力測試。dnsperf目前的實現是單進程模式,通過epoll非阻塞地處理網絡事件。

dnsperf的地址:https://github.com/cobblau/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. 

-i      用來指定前后探測的時間間隔,因為dnsperf是一個壓測工具,所以本選項目前還不支持。
-P     指定用哪個傳輸層協議發送DNS請求,udp或者tcp。默認值是udp
-f      指定用什么地址類型發送DNS請求,inet或者inet6。默認值是inet
-v     除了標准的輸出外,還輸出每個相應碼的個數。
-h     打印幫助

 

數據文件示例:

上文中提到,-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支持的資源類型如下:

ANSMDMFCNAMESOAMBMGMRNULLWKSPTRHINFOMINFOMXTXTAAAASRVNAPTRA6ASFRMAILBMAILAANY.

 

性能評測指標

下圖是一個示例輸出:

DNS Performance Testing Tool

[Status] Processing query data
[Status] Sending queries to 127.0.0.1:53
time up
[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。

 

歡迎大家試用!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM