Dns tests: различия между версиями
Sirmax (обсуждение | вклад) |
Sirmax (обсуждение | вклад) |
||
(не показано 12 промежуточных версий этого же участника) | |||
Строка 1: | Строка 1: | ||
+ | [[Категория:Linux]] |
||
+ | [[Категория:Networking]] |
||
+ | [[Категория:DNS]] |
||
=Сравнение производительности разных DNS-серверов= |
=Сравнение производительности разных DNS-серверов= |
||
==Задача теста== |
==Задача теста== |
||
Задача теста: cравнить производительность 3-х авторитативных DNS-серверов и выбрать наиболее производительный для дальнейего использования |
Задача теста: cравнить производительность 3-х авторитативных DNS-серверов и выбрать наиболее производительный для дальнейего использования |
||
+ | Для тестирования используем утилиту dnsperf (http://www.nominum.com/services/measurement_tools.php) |
||
+ | |||
==Подготовка== |
==Подготовка== |
||
Строка 43: | Строка 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 |
||
Строка 109: | Строка 113: | ||
Расхождения в разных замерах незначительны. |
Расхождения в разных замерах незначительны. |
||
− | |||
==Bind== |
==Bind== |
||
Строка 145: | Строка 148: | ||
Queries per second: 24552.829325 qps |
Queries per second: 24552.829325 qps |
||
</PRE> |
</PRE> |
||
− | + | Повторяем тест еще 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== |
||
Строка 187: | Строка 189: | ||
</PRE> |
</PRE> |
||
+ | Повторяем тест еще 2 раза |
||
− | |||
− | и еще 2 теста |
||
<PRE> |
<PRE> |
||
Queries per second: 33367.809328 qps |
Queries per second: 33367.809328 qps |
||
Строка 194: | Строка 195: | ||
</PRE> |
</PRE> |
||
+ | ==Выводы== |
||
⚫ | |||
+ | Дальнейшее исследование показало, что после "вырезания" из файла блока доменов (я так и не нашел какие, просто делил файл на пополам, отбрасывая ту половину что вызывала ошибку) ситуация немного изменилась - |
||
+ | <PRE> |
||
+ | Queries per second: 14896.374058 qps |
||
+ | </PRE> |
||
+ | Однако, когда я попробовал увеличить файл с запросами раз в 10 (простым cat >> new_file) то ошибка стала возникать снова - причем в произвольных запросах, что меня немного смущает. |
||
+ | Думаю, что дело все же не в запрсах, а в работе 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 |
||
+ | [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 |
||
+ | </PRE> |
||
+ | |||
+ | |||
+ | <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> |
Текущая версия на 12: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