Since upgrading to BIND 9.9 I'm seeing "maximum number of FD events (64) received"
Since upgrading to BIND 9.9, I'm now seeing maximum number of FD events (64) received being logged frequently - why is this, and what should I do about it?
An explanation of this logged message can be found in the article What does 'maximum number of FD events ... received' mean?
However, BIND 9.9.0 introduced multiple UDP listeners to improve performance, which means that in a multi-threaded BIND installation, there are effectively more sockets being monitored for client-side queries. If you are also listening on multiple interfaces (real or virtual), this might mean that # interfaces x # UDP listeners exceeds 64. The outcome of this is that on a busy server (particularly a busy recursive server that is also opening connections to make iterative queries of authoritative servers), the default number of FD events is already too small. (Future versions of BIND may increase this default.)
To prevent this message from being logged constantly, you can increase the default number of events when you build BIND. See What does 'maximum number of FD events ... received' mean? for information on how to do this.
Another way to reduce the frequency of these messages is to reduce the number of UDP listeners when starting named, particularly if running on a server that has a large number of CPUs (actual or virtual). This is achieved using the new -U option. For example:
named -U 8