Fixer le nombre de threads instanciés par Bind9

Comment limiter le nombre de threads générés au démarrage de Bind ?

Au démarrage, le démon « named » de BIND détecte le nombre de CPUs (cœurs) de la machine et crée un thread pour chacun d’eux. Sur des systèmes virtualisés (avec VServers par exemple), il n’est pas forcément judicieux de laisser tel quelle cette politique. Il convient alors de fixer le nombre de threads (ou de CPUs puisqu’un CPU = un thread pour Bind) initié par le système.

L’option « -n NbreCPU », passée au démarrage du démon, fixe à « NbreCPU » le nombre de threads instanciés au démarrage du service.

Afin que cette valeur soit reprise à chaque lancement du démon, l’option doit être ajoutée aux paramètres de d’initialisation du service avant son redémarrage. L’option est modifiée dans « /etc/default/bind9 » sous Debian :

18:16:01 ns ~ # cat /etc/default/bind9 
...
# named est executé en tant qu'utilisateur bind (-u bind)
# le serveur de nom fonctionne exclusivement en IPV4 (-4)
# 2 Threads sont instanciés au démarrage de named (-n 2)
OPTIONS="-u bind -4 -n 2"
 
18:17:11 ns ~ # /etc/init.d/bind9 restart
Stopping domain name service...: bind9 waiting for pid 26957 to die.
Starting domain name service...: bind9.

dans « /etc/sysconfig/named » sous CentOS et « Red Hat like » :

[root@srv ~]# cat /etc/sysconfig/named
...
OPTIONS="-n 2"
[root@srv ~]# /etc/init.d/named restart

ou via l’option « CPU » de « /etc/conf.d/named » sous Gentoo Linux :

srv ~ # cat /etc/conf.d/named 
...
OPTIONS=""
 
# Set this to the number of processors you have.
CPU="2"
...
neptune ~ # /etc/init.d/named restart
 * Stopping chrooted named ...       [ ok ]
 * Starting chrooted named ...       [ ok ]

Le résultat apparaît clairement dans les logs de démarrage du service :

18:39:53 ns ~ # tail -n20 /var/log/messages
...
Mar 14 18:39:04 ns named[27090]: found 4 CPUs, using 2 worker threads
...

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *