Windows Chrome Sleep 後にホストを解決しています
ここひと月くらいの現象なのですが、Windows を sleep させた、もしくは勝手に sleep したから復帰後の Chrome の動作が「ホストを解決しています」となって応答がなくなります。
私の PC だけの現象かどうかもよくわからないのですが、「ホストを解決しています」となって応答がなくなります。
で、コマンドプロンプトで nslookup で www.yahoo.co.jp を問合せると即答で帰ってきます。
念のため、Microsoft Edge でwww.yahoo.co.jp を開くと即表示されます。
このことから、この現象は Chrome 固有の現象と思われます。
Chrome ホスト解決
chrome://net-internals/#dns
Chrome はどうやら独自でDNSをもっているようです。
chrome://net-internals/#dns
www.yahoo.co.jp を検索すると、ちゃんとあります。
気になるのは、TTL がマイナスになっており、Expired となっているあたりですが、chrome の DNS を clear 後再アクセスすると正常なようですので問題はなさそうです。
仕組みは良くわかりませんが、chrome は自分の DNS を使っていると言うことでしょうか?
非同期DNS設定は、内部 DNS クライアントが有効:false となっているのですが、これも良くわかりません。
ちなみに同じように chrome のホストを解決で遅延が出ている人の解決策を見ると、
・chrome の DNS を clear
・Windows の DNS を clear
これで解決できる時もあると出ているのですが、私の場合の Sleep 後に「ホストを解決しています」では改善されませんでした。
URL(ホスト名)でなく、IPアドレスでアクセス
ホスト名が解決できないのなら、URL(ホスト名)でなく、IPアドレスでアクセスしてみたらどうなるか?
やってみました。
結果は、「ホストを解決しています」が表示されないだけで、全く同じタイミングで待たされました。
このことから、本当の原因はホストを解決ではないと推測されます。
本当の原因
sleep からの復帰後、2分ほど放置してからアクセスしてみました。
正常に即表示されます。
どうしてここひと月くらいで待たされるようになったのか分かりませんが、chrome の変更でも有ったのでしょう。
シャットダウンしてから立ち上げたときは、遅くならないので sleep 絡みでなにかありそうです。
本当の原因は、高速化させるために事前に fetch でもしていると言うところでしょうか?
であれば、「ホストを解決しています」は、今アクセスしている URL のホストを解決しているのでなく、全体の事前準備の時間と捉えられるかもしれません。
高速化のために、sleep 復帰からの30秒くらいの時間はその代償ということにしておきましょう。
以上、「Windows Chrome Sleep後にホストを解決しています」についてでした。
追伸
本当に DNS が解決出来ていない時もたぶん同様の内容でメッセージが出ると思います。
その場合は、
1)コマンドプロンプトを開く
2)nslookup www.yahoo.co.jp
で、IPアドレスが正常に表示さなければ、DNS が解決できていないことになります。
また、
1)コマンドプロンプトを開く
2)ipcongif
で、IPアドレスが正常に取得されていないようであれば、そもそもルーターと接続出来ていない状態です。
上の方法で大まかなネットワーク障害の切り分けをしてください。