Dns tests: различия между версиями

Материал из noname.com.ua
Перейти к навигацииПерейти к поиску
 
(не показано 10 промежуточных версий этого же участника)
Строка 1: Строка 1:
  +
[[Категория:Linux]]
  +
[[Категория:Networking]]
  +
[[Категория:DNS]]
 
=Сравнение производительности разных DNS-серверов=
 
=Сравнение производительности разных DNS-серверов=
 
==Задача теста==
 
==Задача теста==
Строка 45: Строка 48:
   
 
==TinyDNS==
 
==TinyDNS==
первый - tinydns
 
 
<PRE>
 
<PRE>
 
anarxist bin # ./dnsperf -d ./real_q3 -s 172.16.30.146
 
anarxist bin # ./dnsperf -d ./real_q3 -s 172.16.30.146
Строка 111: Строка 113:
   
 
Расхождения в разных замерах незначительны.
 
Расхождения в разных замерах незначительны.
 
   
 
==Bind==
 
==Bind==
Строка 147: Строка 148:
 
Queries per second: 24552.829325 qps
 
Queries per second: 24552.829325 qps
 
</PRE>
 
</PRE>
и еще 2 раза
+
Повторяем тест еще 2 раза
 
<PRE>
 
<PRE>
 
Queries per second: 24531.790573 qps
 
Queries per second: 24531.790573 qps
 
Queries per second: 24697.852266 qps
 
Queries per second: 24697.852266 qps
 
</PRE>
 
</PRE>
 
   
 
==PowerDNS==
 
==PowerDNS==
Строка 189: Строка 189:
 
</PRE>
 
</PRE>
   
  +
Повторяем тест еще 2 раза
 
и еще 2 теста
 
 
<PRE>
 
<PRE>
 
Queries per second: 33367.809328 qps
 
Queries per second: 33367.809328 qps
Строка 196: Строка 195:
 
</PRE>
 
</PRE>
   
 
==Выводы==
 
Результаты наводят на мысли, что такое отставание tinydns связано с тем что что-то не так с файлом запросов, только при запросе к tinydns возникают ошибки.
 
Дальнейшее исследование показало, что после "вырезания" из файла блока доменов (я так и не нашел какие, просто делил файл на пополам, отбрасывая ту половину что вызывала ошибку) ситуация немного изменилась -
 
<PRE>
 
Queries per second: 14896.374058 qps
  +
</PRE>
 
Однако, когда я попробовал увеличить файл с запросами раз в 10 (простым cat >> new_file) то ошибка стала возникать снова - причем в произвольных запросах, что меня немного смущает.
   
 
Думаю, что дело все же не в запрсах, а в работе tinydns. Соотетвенно, я не вижу причин его использовать.
   
Наводит на мысли, что такое отставание tinydns связано с тем что что-то не так с файлом запросов, только при запросе к tinydns возникают ошибки
 
   
   
  +
==Тест рабочих DNS-серверов==
  +
Для сравнения - текущие (вполне себе боевые ДНСы)
  +
<PRE>
  +
anarxist bin # ./dnsperf -d ./real_q2 -s 193.XX.XX.XX
   
  +
DNS Performance Testing Tool
   
  +
Nominum Version 1.0.1.0
==Выводы==
 
  +
Дальнейшее исследование показало, что после "выразания" из файла блока доменов (я так и не нашел какие, просто делил файл на пополам, отбрасывая ту половину что вызывала ошибку) ситуация немного изменилась -
 
  +
[Status] Processing input data
<PRE>
 
  +
[Status] Sending queries (to 193.XX.XX.XX)
Queries per second: 14896.374058 qps
 
  +
[Status] Testing complete
  +
  +
Statistics:
  +
  +
Parse input file: once
  +
Ended due to: reaching end of file
  +
  +
Queries sent: 7228 queries
  +
Queries completed: 7185 queries
  +
Queries lost: 43 queries
  +
  +
Avg request size: 56 bytes
  +
Avg response size: 136 bytes
  +
  +
Percentage completed: 99.41%
  +
Percentage lost: 0.59%
  +
  +
Started at: Sun Oct 19 21:10:27 2008
  +
Finished at: Sun Oct 19 21:11:39 2008
  +
Ran for: 72.316942 seconds
  +
  +
Queries per second: 99.354312 qps
 
</PRE>
 
</PRE>
Однако, когда я попробовал увеличить файл с запросами раз в 10 (простым cat >> new_file) то ошибка стала возникать снова - причем в произвольных запросах, что меня немного смущает.
 
   
  +
Думаю, что дело все же не в запрсах, а в работе tinydns. Соотетвенно, я не вижу причин его использовать.
 
  +
<PRE>
  +
anarxist bin # ./dnsperf -d ./real_q2 -s 193.YY.YY.YY
  +
  +
DNS Performance Testing Tool
  +
  +
Nominum Version 1.0.1.0
  +
  +
[Status] Processing input data
  +
[Status] Sending queries (to 193.YY.YY.YY)
  +
[Status] Testing complete
  +
  +
Statistics:
  +
  +
Parse input file: once
  +
Ended due to: reaching end of file
  +
  +
Queries sent: 7228 queries
  +
Queries completed: 7228 queries
  +
Queries lost: 0 queries
  +
  +
Avg request size: 56 bytes
  +
Avg response size: 136 bytes
  +
  +
Percentage completed: 100.00%
  +
Percentage lost: 0.00%
  +
  +
Started at: Sun Oct 19 21:12:13 2008
  +
Finished at: Sun Oct 19 21:12:17 2008
  +
Ran for: 4.090583 seconds
  +
  +
Queries per second: 1766.985293 qps
  +
</PRE>

Текущая версия на 13:25, 23 июля 2021

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

Задача теста

Задача теста: cравнить производительность 3-х авторитативных DNS-серверов и выбрать наиболее производительный для дальнейего использования Для тестирования используем утилиту dnsperf (http://www.nominum.com/services/measurement_tools.php)

Подготовка

Запускаем и настраиваем 3 сервиса - tinydns (из пакета djbdns), bind и powerdns

udp        0      0 172.16.30.146:53        0.0.0.0:*                           14232/tinydns
udp        0      0 172.16.30.147:53        0.0.0.0:*                           16044/named
udp        0      0 172.16.30.148:53        0.0.0.0:*                           21494/pdns_server-i

Для tinydns - вытаскиваем зоны из bind при помощи axfr-get, для named - просто копируем файлы зон, powerdns имеет собственный механизм и вытаскивает зоны сам. Проверить это можно по соответсвующим записям в базе данных

mysql> select count(*) from records;
+----------+
| count(*) |
+----------+
|    21642 |
+----------+
1 row in set (0.00 sec)

итого - имеем 3 работающих авторитативных сервера, каждый слушает свой адрес, отвечают они за одни и те же зоны.


Из файлов зон bindа создаем файлик с запросами примерно такого вида

...
forum.airbites.kh.ua A
fleur.airbites.kh.ua A
oberon.airbites.kh.ua A
mill.airbites.kh.ua A
foto.airbites.kh.ua A
misery.airbites.kh.ua A
....

т.е. домен и что нас в тесте про него интересует. Всего у меня получилось 13921 записей.

Для чистоты эксперемнта каждый запрос записываем 4 раза.


TinyDNS

anarxist bin # ./dnsperf -d ./real_q3 -s 172.16.30.146

DNS Performance Testing Tool

Nominum Version 1.0.1.0

[Status] Processing input data
[Status] Sending queries (to 172.16.30.146)
[Timeout] Query timed out: msg id 12387
[Timeout] Query timed out: msg id 12640
[Timeout] Query timed out: msg id 12988
[Timeout] Query timed out: msg id 13313
[Timeout] Query timed out: msg id 13340
[Timeout] Query timed out: msg id 13877
[Timeout] Query timed out: msg id 26308
[Timeout] Query timed out: msg id 26561
[Timeout] Query timed out: msg id 26909
[Timeout] Query timed out: msg id 27234
[Timeout] Query timed out: msg id 27261
[Timeout] Query timed out: msg id 27798
[Timeout] Query timed out: msg id 40229
[Timeout] Query timed out: msg id 40482
[Timeout] Query timed out: msg id 40830
[Timeout] Query timed out: msg id 41155
[Timeout] Query timed out: msg id 41182
[Timeout] Query timed out: msg id 41719
[Timeout] Query timed out: msg id 54150
[Timeout] Query timed out: msg id 54403
[Timeout] Query timed out: msg id 54751
[Timeout] Query timed out: msg id 55076
[Timeout] Query timed out: msg id 55103
[Timeout] Query timed out: msg id 55640
[Status] Testing complete

Statistics:

  Parse input file:     once
  Ended due to:         reaching end of file

  Queries sent:         55684 queries
  Queries completed:    55660 queries
  Queries lost:         24 queries

  Avg request size:     55 bytes
  Avg response size:    156 bytes

  Percentage completed:  99.96%
  Percentage lost:        0.04%

  Started at:           Sun Oct 19 20:36:29 2008
  Finished at:          Sun Oct 19 20:36:40 2008
  Ran for:              11.231213 seconds

  Queries per second:   4955.831574 qps


Повторяем тест еще 2 раза

  Queries per second:   4955.831574 qps
  Queries per second:   4953.973704 qps

Расхождения в разных замерах незначительны.

Bind

./dnsperf -d ./real_q3 -s 172.16.30.147

DNS Performance Testing Tool

Nominum Version 1.0.1.0

[Status] Processing input data
[Status] Sending queries (to 172.16.30.147)
[Status] Testing complete

Statistics:

  Parse input file:     once
  Ended due to:         reaching end of file

  Queries sent:         55684 queries
  Queries completed:    55684 queries
  Queries lost:         0 queries

  Avg request size:     55 bytes
  Avg response size:    130 bytes

  Percentage completed: 100.00%
  Percentage lost:        0.00%

  Started at:           Sun Oct 19 20:39:40 2008
  Finished at:          Sun Oct 19 20:39:42 2008
  Ran for:              2.267926 seconds

  Queries per second:   24552.829325 qps

Повторяем тест еще 2 раза

  Queries per second:   24531.790573 qps
  Queries per second:   24697.852266 qps

PowerDNS

anarxist bin # ./dnsperf -d ./real_q3 -s 172.16.30.148

DNS Performance Testing Tool

Nominum Version 1.0.1.0

[Status] Processing input data
[Status] Sending queries (to 172.16.30.148)
[Status] Testing complete

Statistics:

  Parse input file:     once
  Ended due to:         reaching end of file

  Queries sent:         55684 queries
  Queries completed:    55684 queries
  Queries lost:         0 queries

  Avg request size:     55 bytes
  Avg response size:    73 bytes

  Percentage completed: 100.00%
  Percentage lost:        0.00%

  Started at:           Sun Oct 19 20:42:24 2008
  Finished at:          Sun Oct 19 20:42:25 2008
  Ran for:              1.668728 seconds

  Queries per second:   33369.129061 qps

Повторяем тест еще 2 раза

  Queries per second:   33367.809328 qps
  Queries per second:   33868.718269 qps

Выводы

Результаты наводят на мысли, что такое отставание tinydns связано с тем что что-то не так с файлом запросов, только при запросе к tinydns возникают ошибки. Дальнейшее исследование показало, что после "вырезания" из файла блока доменов (я так и не нашел какие, просто делил файл на пополам, отбрасывая ту половину что вызывала ошибку) ситуация немного изменилась -

  Queries per second:   14896.374058 qps

Однако, когда я попробовал увеличить файл с запросами раз в 10 (простым cat >> new_file) то ошибка стала возникать снова - причем в произвольных запросах, что меня немного смущает.

Думаю, что дело все же не в запрсах, а в работе tinydns. Соотетвенно, я не вижу причин его использовать.


Тест рабочих DNS-серверов

Для сравнения - текущие (вполне себе боевые ДНСы)

anarxist bin # ./dnsperf -d ./real_q2 -s 193.XX.XX.XX

DNS Performance Testing Tool

Nominum Version 1.0.1.0

[Status] Processing input data
[Status] Sending queries (to 193.XX.XX.XX)
[Status] Testing complete

Statistics:

  Parse input file:     once
  Ended due to:         reaching end of file

  Queries sent:         7228 queries
  Queries completed:    7185 queries
  Queries lost:         43 queries

  Avg request size:     56 bytes
  Avg response size:    136 bytes

  Percentage completed:  99.41%
  Percentage lost:        0.59%

  Started at:           Sun Oct 19 21:10:27 2008
  Finished at:          Sun Oct 19 21:11:39 2008
  Ran for:              72.316942 seconds

  Queries per second:   99.354312 qps


anarxist bin # ./dnsperf -d ./real_q2 -s 193.YY.YY.YY

DNS Performance Testing Tool

Nominum Version 1.0.1.0

[Status] Processing input data
[Status] Sending queries (to 193.YY.YY.YY)
[Status] Testing complete

Statistics:

  Parse input file:     once
  Ended due to:         reaching end of file

  Queries sent:         7228 queries
  Queries completed:    7228 queries
  Queries lost:         0 queries

  Avg request size:     56 bytes
  Avg response size:    136 bytes

  Percentage completed: 100.00%
  Percentage lost:        0.00%

  Started at:           Sun Oct 19 21:12:13 2008
  Finished at:          Sun Oct 19 21:12:17 2008
  Ran for:              4.090583 seconds

  Queries per second:   1766.985293 qps