4

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

Есть ли способ, которым я могу профилировать поиск DNS на OSX? Например, есть ли журнал, который я могу посмотреть, когда он пытается выполнить поиск?

2 ответа2

6

Вы можете просто запустить tcpdump для выгрузки DNS-пакетов и посмотреть, как ведет себя DNS-трафик. Что-то вроде следующего, введенное в Терминале, должно сделать свое дело:

sudo tcpdump -i en0 -n udp port 53

-i en0 должен ссылаться на ваш активный интерфейс. На Mac это обычно en0 , но если у вас есть и разъем Ethernet, и беспроводной адаптер, вам может понадобиться en1 . Это приведет к выводу наподобие (для ясности я обернул длинные строки):

22:19:46.160992 IP 192.168.1.143.61150 > 192.168.1.1.53:
  60237+ A? www-google-analytics.l.google.com. (51)
22:19:46.184272 IP 192.168.1.1.53 > 192.168.1.143.61150:
  60237 11/0/0 A 74.125.225.233, A 74.125.225.238, A 74.125.225.224,
  A 74.125.225.225, A 74.125.225.226, A 74.125.225.227, A 74.125.225.228,
  A 74.125.225.229, A 74.125.225.230, A 74.125.225.231, A 74.125.225.232 (227)

Этот дамп показывает запрос от моей машины к моему маршрутизатору (192.168.1.143 > 192.168.1.1) в 22:19:46.160992 . Мой маршрутизатор ответил в 22:19:46.184272 с ответом. Таким образом, этот запрос DNS занял около 23 мс.

Если вы подозреваете проблему с производительностью DNS, запустите команду tcpdump и найдите DNS-запросы для интересующего вас сервера. Если вы видите длительную задержку или несколько попыток, значит, у вас есть проблема.

1

У меня проблема с задержкой при определенных запросах к адресу на локальном хосте.

Когда вы говорите "localhost", вы действительно имеете в виду localhost? как в 127.0.0.1 или ::1?

Вы можете использовать tcpdump для поиска трафика распознавателя, как предлагал предыдущий автор, но если вы буквально имеете в виду localhost, вполне вероятно, что имя даже не решается с помощью DNS.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .