gethostbyname_ex (имя хоста) очень медленно

1

При запуске IPython (qtconsole) вызывает socket.gethostbyname_ex(socket.gethostname())[2] чтобы найти список IP-адресов, указывающих на устройство. На сервере Linux, которым я управляю этим звонком, очень медленно (> 20 с)..., с которым у меня возникли проблемы с пониманием, поскольку ip addr show похоже, дает ту же информацию почти мгновенно. Есть ли что-нибудь, что я могу сделать, чтобы сделать это быстрее? Может ли это быть проблемой сетевой конфигурации (я за маршрутизатором)?

Эта проблема не зависит от IPython:

$ time python -c 'import socket; print(socket.gethostbyname_ex(socket.gethostname())[2])' 
['192.168.0.102']
python -c   0.07s user 0.02s system 0% cpu 28.190 total

Благодарю.

  • 0
    Пожалуйста, покажите больше вашего кода.
Теги:
sockets
ip-address

1 ответ

0
Лучший ответ

У меня была аналогичная проблема. Случилось так, что мое имя хоста было localhost.localdomain, ленивое при установке ОС.

Решение состояло в том, чтобы дать ему разумное имя sudo vi/etc/hostname и сменить его на myname.mydomain, и теперь оно выполняется за 1 секунду.

  • 0
    Чтобы это было как можно быстрее, я также добавил myname.mydomain и myname.mydomain.local в /etc/hosts на ip-адрес 127.0.0.1

Ещё вопросы

Сообщество Overcoder
Наверх
Меню