Dnsperf - тестирование производительности DNS-сервера

Версия для печатиОтправить другуPDF version

Решил поинтересоваться производительностью DNS-серверов. В портах нашелся специализированный бенчмарк - утилита dnsperf. Выполним установку утилиты:

# cd /usr/ports/dns/dnsperf && make install clean && rehash

По завершению установки утилиты приступим к тестированию. Для работы утилиты необходимо сформировать файл с  запросами в формате <имя_записи> <тип_записи>. Можно сформировать простенький файл, например:

muff.kiev.ua A
muff.kiev.ua MX
muff.kiev.ua NS
google.com.ua A
google.com.ua MX
google.com.ua NS

Также можно загрузить файл с 10 000 000 записей по ссылке http://muff.kiev.ua/files/dnsperf-example.txt

Пример тестирования DNS-сервера:

# dnsperf -d /usr/local/etc/dnsperf.txt -s alpha.muff.kiev.ua -l 60
DNS Performance Testing Tool
Nominum Version 2.0.0.0
[Status] Command line: dnsperf -d /usr/local/etc/dnsperf.txt -s alpha.muff.kiev.ua -l 60
[Status] Sending queries (to 195.12.59.30)
[Status] Started at: Mon Oct  7 01:31:52 2013
[Status] Stopping after 60.000000 seconds
[Status] Testing complete (time limit)
Statistics:
  Queries sent:         535937
  Queries completed:    535937 (100.00%)
  Queries lost:         0 (0.00%)
  Response codes:       NOERROR 535937 (100.00%)
  Average packet size:  request 28, response 213
  Run time (s):         60.000762
  Queries per second:   8932.169895
  Average Latency (s):  0.000785 (min 0.000399, max 0.056612)
  Latency StdDev (s):   0.000403

Некоторые ключи запуска dnsperf, ознакомиться с которыми можно по запуску команды dnsperf -h:

  • -f - указываем, какой протокол будет использоваться при отправке запросов. Допустимые значения: inet - IPv4, inet6 - IPv6, any - IPv4 и IPv6. По умолчанию - any.
  • -s - опрашиваемый сервер, тоесть сервер, на который будем отправлять запросы. По умолчанию - 127.0.0.1.
  • -p - порт, на который будем отправлять запросы. По умолчанию - 53.
  • -a - локальный адрес, с которого будут отправляться запросы.
  • -x - локальный порт, с которого будут отправляться запросы. По умолчанию - 0.
  • -d - путь к файлу данных с запросами. По умолчанию - stdin.
  • -c - количество имитируемых клиентов. Для каждого клиента используется уникальный исходящий номер порта.
  • -n - количество раз "прогонки" файла с запросами.
  • -l - запуск тестирования на указаное количество времени в секундах.
  • -b - размер буферов отправки/приема в килобайтах.
  • -t - таймаут ожидания ответа в секундах. По умолчанию - 5.
  • -e - использовать EDNS 0. В отправленых пакетах добавляется запись OPT (RFC 2671).
  • -D - задать бит DNSSEC OK.
  • -y - использовать TSIG алгоритм, логин и пароль. Формат - [algorithm:]name:secret.
  • -q - максимальное количество отправляемых запросов. По умолчанию - 100.
  • -Q - ограничение количества отправляемых запросов в секунду.
  • -S - отображать статистику запросов в секунду каждые N секунд.
  • -u - отправлять динамически обновляемые запросы.
  • -v - режим отладки. Выводится отчет о каждом запросе в stdout.
  • -h - отображение этой подсказки.

Основные ключи использования описаны. Теперь можно приступать к тестированию возможностей DNS-сервера, используя полученные знания.

 

Ваша оценка: Нет Средняя: 5 (4 голоса)

Re: Dnsperf - тестирование производительности DNS-сервера

Спасибо за файлик dnsperf-example.txt

Но хочу сказать, что он требует допиливания - там куча некорректных записей.

Пример:

api.facebook.com.\255\255\255\255\255\255\255\255\255\255\255\255.      A

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".

Вставай, Україно!

Литература