Chrome/Chromium's DNS cache is all in RAM. It appears that restarting Chrome completely will inevitably clear it.
The Chromium source for host caching doesn't appear to have any committing to the hard drive for persistence. I can only assume the official Google Chrome does the same thing.
The same goes for Firefox. It appears simply restarting Firefox will clear the cache, as the code for the prefetch system doesn't suggest it commits to the hard disk either.
From my own observation, the TTL column is meaningless and always contains the
value of -1000
. I can only theorize that this is because Chrome's DNS cache
does not follow the standards and does its own thing. See below for more.
The Unix Stack Exchange post
Chromium/Chrome does not cache DNS requests more than a minute
quotes answers from
bugs-chromium - Issue 164026 - DNS TTL not honored from Apr 21 2011,
which was closed on Oct 10 2013 as "WontFix (obsolete/works as intended)"
It brings this quote from the bug report :
The HostCache currently assumes TTL=60s for all positive results. With asynchronous DNS resolver, we plan to use TTL=max(60s, server_reported_ttl), i.e., at least 60s. The rationale is to improve the cache performance. (When a CDN NS provides TTL=10-20s, and it takes 30s+ to fetch all subresources, we often have to re-query for the same hostname during one page load.)
Further, while Chrome marks after a minute the entries in the cache as [Expired]
,
the entries just stay there. I have not tried to measure for how long, but they
were still there for at least 15 minutes after expiration.
My conclusion is that Chrome cuts quite a few corners in the quest for speed,
even disobeying DNS rules. Specifically, it ignores the TTL value,
marking all entries as expired after only one minute, but then goes ahead
and keeps those entries for an unknown (to me) period of time.
The value in the TTL column, and the [Expired]
mark, have no real meaning.
Chrome will continue to value speed above many other considerations.
Best Answer
The DNS server of your ISP has your address in its cache, and so is returning the old address. It will keep on doing so, until the Time To Live (TTL) of your data will expire.
DNS records are stored in cache, mainly to improve performance of DNS queries. Every DNS record has a Time to Live (TTL) value, which is the time DNS servers should store that record in cache. Even if a record is changed, DNS servers will continue working with its former value from the cache until this time has passed.
DNS propagation is the time required for DNS servers worldwide to update their cached information for a domain name. It is influenced by the TTL of DNS records that might have changed, but there are also other factors that could come into play.
A DNS change may require up to 72 hours to propagate worldwide, although most often this happens in a matter of hours.
To speed up the propagation time is possible by having your TTL set to a lower number (not recommended), for example 14400 (4 hours). But you should do that well before the NS change, maybe as much as 96 hours in advance.
When you query a DNS server that does not have your DNS in its cache, you might find that it returns the new DNS record, if the change has already propagated that far.