使用queryperf對DNS伺服器作壓力測試

sunnydoy發表於2021-08-01

一、querperf簡介

當我們把DNS伺服器配置好後,我們肯定會想測試一下DNS伺服器的效能如何,上線後如果請求數夠多伺服器還能否響應?於是,我們可以使用軟體模擬環境,對DNS伺服器作評估性的測試。在bind中,有一款自帶的壓力測試軟體,queryperf。使用這款軟體可以對DNS伺服器作請求測試,並且使用方法簡單,我們可以使用queryperf測試多次,取一個平均值,這樣就算結果不準確,也不會和實際情況相差太大。

二、queryperf安裝

1、queryperf是bind自帶的測試軟體,所以我們直接上官網下載bind,解壓後就能找到queryperf的安裝包。

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

2、解壓

cd /tmp
tar -zxvf queryperf.tar.gz

3、解壓後,找到目錄 contrib ,bind自帶的第三方軟體全在這個目錄裡面,我們要用到的queryperf也在裡面。

4、進入queryperf目錄,開始編譯安裝。可以使用 ./configure -h 檢視安裝幫助,不過我們預設安裝就行了。

./configure

make

5、通過上面的編譯後,展開queryperf目錄,在該目錄下已經生成了一個queryperf的可執行檔案。這個檔案就是我們要用到的程式,我們把該程式移動到/usr/bin/目錄下就可以使用了。

cp queryperf /usr/bin/

三、使用queryperf測試DNS伺服器

在測試之前,我們先把DNS伺服器架設好。我們以域名test.com為例,架設DNS伺服器,dns.test.com。
1、test.com區域的資源記錄檔案test.com.zone內容如下。

$TTL 600
@    IN  SOA dns.test.com. dnsadmin.test.com.(
             2020022320
             2H
             4M
             1D
             2D)
@    IN  NS dns.test.com.
@    IN  MX 10  mail.test.com.
dns  IN  A 192.168.0.1
mail IN  A 192.168.0.2
www  IN  A 192.168.0.3
ftp  IN  A 192.168.0.4

2、測試DNS伺服器能否正常使用。
重新啟動服務:

named-checkconf
named-checkconf "test.com" test.com.zone
service named reload

測試域名blog.test.com

dig -t A blog.test.com @192.168.0.1

看到解析結果後,DNS伺服器工作正常,接下來可以使用queryperf作壓力測試了。
3、queryperf使用格式:
queryperf [-d datafile] [-s server_addr] [-p port] [-q num_queries]
-d: 後面接上一個檔案,檔案的內容是使用者對DNS的請求,一行為一條請求,所以為了測試,我們可以在裡面寫上幾千幾萬條。
-s: DNS伺服器地址
-p: DNS伺服器埠
-q: 請求多少次
使用vim命令先建立一個請求檔案:vim querytest.txt

www.test.com  A
test.com      NS
blog.test.com  A

這幾條記錄還遠遠不夠,通過迴圈寫入創造100萬+的資料。
4、效能測試。
執行命令:
queryperf -d querytest.txt -s 192.168.0.1
此時使用top命令可以看到CPU和記憶體的使用率。

結果如下:

測試過程完成,可以多測試幾次取平均值。

四、效能測試總結

1、在作伺服器的效能測試時,最好不要在伺服器平臺自身使用測試軟體測試,最好換另外一臺機器,這樣CPU處理的結果會更準確。
2、測試時先預估平臺會遇到的最大請求數,用這個請求數作測試,量力而為,因為如果伺服器遇到大流量的DDOS,單一機器效能再好,也扛不住。
3、使用queryperf作效能測試時,最好測試多次,取平均值。
4、可以修改配置檔案的部分引數測試,如,開啟遞迴,開啟查詢日誌等功能作測試。
5、其它開源測試工具,tcpcopy

相關文章