ホスト名の解決に時間がかかるのはなぜですか?
数ヶ月前、テキストエディター(emacs)とIDE(IntelliJ)の起動に非常に時間がかかっていることに気付きました。この時間は、OS Xが使用していたDNSサーバーによって異なるように見えました。 プロジェクトのテストスイートの実行が遅いときに問題を特定できました。(より高いレベルの)犯人がの呼び出しであることがわかりましたsocket.getfqdn()。 OS X 10.10.2のターミナルで次のコマンドを実行すると、問題が発生します。 $ time python -c 'import socket; socket.getfqdn()' python -c 'import socket; socket.getfqdn()' 0.02s user 0.00s system 0% cpu 5.122 total socket.getfqdn()が呼び出されたときに実行されるコードをトレースしましたが、遅延はによって引き起こされgetaddrinfo(3)ます。問題を切り分けてgai_strerror(3)このメッセージを提供する小さなプログラムを作成しました。 $ time ./hostinfo Hostname: MacBook-Pro.local getaddrinfo: nodename nor servname provided, or not known ./hostinfo 0.00s user 0.00s system 0% cpu 5.101 total DNSクエリがタイムアウトするのを遅延が待っているようです。上記の結果は、GoogleのパブリックDNSサーバーを使用していました。ただし、ISPのDNSサーバーを使用すると、時間が30秒に増加します。 …