Tuesday, 13 December 2011

Ускорение скорости резолвинга за счет использования PowerDNS recursor на Debian Squeeze

Итак, имеем необходимость в частых DNS запросах:
time for i in `seq 1 100`; do host ya.ru > /dev/null; done

real 0m4.938s
user 0m0.160s
sys 0m0.149s
root@stat:~# time for i in `seq 1 1000`; do host ya.ru > /dev/null; done

real 0m50.746s
user 0m1.601s
sys 0m1.465s

Скорость, как видно, очень низкая и подобная скорость реакции может стать узким горлышком приложения.

Чтобы исправить подобное поведение, можно поставить локальный кэширующий DNS, мне нравится PowerDNS Recursor:
apt-get install -y powerdns-recursor

После установки необходимо сделать установленный DNS сервер основным в системе:
vim /etc/resolv.conf

И в самый верх добавляем следующее, а имеющиеся записи комментируем диезом:
nameserver 127.0.0.1

Повторяем тест:
time for i in `seq 1 1000`; do host ya.ru > /dev/null; done

real 0m3.400s
user 0m1.456s
sys 0m1.735s
root@stat:~# time for i in `seq 1 1000`; do host ya.ru > /dev/null; done

real 0m3.520s
user 0m1.532s
sys 0m1.735s
root@stat:~# time for i in `seq 1 1000`; do host ya.ru > /dev/null; done

real 0m3.487s
user 0m1.452s
sys 0m1.782s

Все, результат достигнут, на множестве одинаковых запросов будет достигаться серьезное повышение скорости работы.

1 comment:

  1. Провел эксперимент - замерил скорость с bind и c pdns-recursor на CentOS 5. pdns-recursor 3.1 sec, bind - 2.95. Получилось, что bind даже быстрее.

    ReplyDelete

Note: only a member of this blog may post a comment.