У меня есть DNSMasq, установленный на относительно простаивающем компьютере с процессором Pentium D 3.4Ghz Debian Linux. Когда я выполняю поисковые запросы локально, второй результат всегда равен 0 мс. Когда я запускаю поисковые запросы на любом другом компьютере в моей сети, время отклика в кэше составляет 35 мс. И это несмотря на то, что время пинга по локальной сети у меня вернулось - менее 1 мс.
С помощью Тест DNS, Я провел тест, который показывает, что я могу подключаться к DNS-серверам своего интернет-провайдера быстрее, чем мой собственный, для кэшированных запросов.
Как я получаю 35 мс для кешированных ответов DNS для удаленных запросов, но <1 мс для локальных запросов в командной строке сервера?
Я столкнулся с той же проблемой, когда мой локальный экземпляр dnsmasq работал медленнее, чем opendns и многие другие DNS-серверы, предоставляемые интернет-провайдерами. Следующее, наконец, сработало для меня, что привело к значительное улучшение а мой dnsmasq в 3 раза быстрее, чем любой удаленный DNS-сервер.
Настройте параметр размера кеша в /etc/dnsmasq.conf. Я установил 10000.
# Set the cachesize here.
cache-size=10000
Я подозреваю, что это связано с низким объемом памяти на вашем локальном DNS-сервере, и он читает запись в кеш-базе данных для имени с диска, что приводит к более медленному времени отклика. Это также может быть сетевая карта низкого качества, вызывающая большую загрузку ЦП ... Я бы отслеживал системные ресурсы, когда вы выполняете поиск с хоста.
Проверьте, сколько памяти свободно, с помощью команды «free», вы можете выполнить «free -h» для более удобочитаемого вывода.