Whenever one of the servers in /etc/resolv.conf is unreachable, Linux/glibc/whatever isn’t smart enough not to retry it for a while. This results in a lot of services becoming unavailable, because a lot of them do reverse lookups on all incoming connections (like SSH), which will hang for the time-out of the first DNS server query.
There doesn’t seem to be a solution, but I worked around it a little bit by putting this in /etc/resolv.conf (or /etc/resolvconf/resolv.conf.d/base && resolvconf -u):
options timeout:2 rotate
Still not perfect, but more workable.