Go to content Go to menu Go to search

Тест производительности DNS

Постановка задачи

Непроходимо протестировать производительность DNS сервера. Имеется DNS сервер, которому делегировано порядка 5000 доменов.

Будем использовать утилиты dnsperf and resperf. Сайт разработчика: http://www.nominum.com/measurement-tools/

Установка утилит тестирования производительности на ubuntu

Ставим необходимые пакеты

sudo apt-get install -y bind9utils libbind-dev libkrb5-dev libssl-dev libcap-dev libxml2-dev make

Скачиваем исходные коды и компилируем

cd /usr/local/src
wget ftp://ftp.nominum.com/pub/nominum/dnsperf/2.0.0.0/dnsperf-src-2.0.0.0-1.tar.gz
tar xfvz dnsperf-src-2.0.0.0-1.tar.gz
cd dnsperf-src-2.0.0.0-1
./configure
make
make install

Если получили ошибку типа fatal error: isc/hmacsha.h: No such file or directory, то это значит мы натолкнулись на баг bug=692467. В пакете libbind-dev отсутствует необходимый нам файл hmacsha.h, его нужно взять из исходников:

cd /tmp
wget ftp://ftp.isc.org/isc/bind9/9.9.0/bind-9.9.0.tar.gz
tar zxvf bind-9.9.0.tar.gz
cp -p bind-9.9.0/lib/isc/include/isc/hmacsha.h /usr/include/isc/
ln -s /usr/lib/i386-linux-gnu/libgssapi_krb5.so.2.2 /usr/lib/i386-linux-gnu/libgssapi_krb5.so

Тестируем

Готовим файл со списком запросов.

Есть файл all-zones.txt со списком доменов (один домен на строку) вида:

domain1.com
domain2.com
...
domainN.com

Сделаем из него файл requests.txt вида:

domain1.com SOA
domain1.com A
domain1.com MX
domain1.com NS
domain1.com TXT
domain2.com SOA
domain2.com A
domain2.com MX
domain2.com NS
domain2.com TXT
...
domainN.com SOA
domainN.com A
domainN.com MX
domainN.com NS
domainN.com TXT

для этого выполняем следующую команду: cat all-zones.txt | awk '{print $0" SOA\n"$0" A\n"$0" NS\n"$0" MX\n"$0" TXT"}' > requests.txt

Запускаем

Тест авторативного ДНС сервера:

dnsperf -d ./requests.txt -s <адрес сервера>

Тест рекурсивного ДНС сервера (предварительно нужно скачать файл со списком запросов)

resperf-report -s 192.168.1.80 -p 53 -d ../queryfile-example-current

Запуск resperf-report с постоянной нагрузкой 10тыс. запросов в секунду на 60 секунд:

resperf-report -s 192.168.1.80 -p 53 -d ../queryfile-example-current -m 10000 -c 60

Ссылки

Официальный сайт dnsperf
man по resperf
man по resperf-report

Enjoy!


при публикации материалов с данного сайта обратная ссылка на сайт обязательна.
valynkin.ru © no rights reserved