我最近将一个小型 DNS 设置从一台机器迁移到另一台机器。唯一改变的是使用的 bind 版本:
root@old_box:~ $ named -V
BIND 9.7.0-P1 built with '--prefix=/usr' '--mandir=/usr/share/man' '--infodir=/usr/share/info' '--sysconfdir=/etc/bind' '--localstatedir=/var' '--enable-threads' '--enable-largefile' '--with-libtool' '--enable-shared' '--enable-static' '--with-openssl=/usr' '--with-gssapi=/usr' '--with-gnu-ld' '--with-dlz-postgres=no' '--with-dlz-mysql=no' '--with-dlz-bdb=yes' '--with-dlz-filesystem=yes' '--with-dlz-ldap=yes' '--with-dlz-stub=yes' '--with-geoip=/usr' '--enable-ipv6' 'CFLAGS=-fno-strict-aliasing -DDIG_SIGCHASE -O2' 'LDFLAGS=-Wl,-Bsymbolic-functions' 'CPPFLAGS='
相对
root@new_box:/etc# named -V
BIND 9.8.4-rpz2+rl005.12-P1 built with '--prefix=/usr' '--mandir=/usr/share/man' '--infodir=/usr/share/info' '--sysconfdir=/etc/bind' '--localstatedir=/var' '--enable-threads' '--enable-largefile' '--with-libtool' '--enable-shared' '--enable-static' '--with-openssl=/usr' '--with-gssapi=/usr' '--with-gnu-ld' '--with-geoip=/usr' '--enable-ipv6' 'CFLAGS=-fno-strict-aliasing -DDIG_SIGCHASE -O2'
using OpenSSL version: OpenSSL 1.0.1e 11 Feb 2013
using libxml2 version: 2.8.0
旧机器的 CPU 使用率在 0% 到 5% 之间,而现在则在 10% 左右。我知道这些测量结果非常不科学,但我想知道这是否是一种常见的观察结果。
据我所知,这种行为与已知错误BIND 无法创建managed-keys.bind
文件,症状是 CPU 使用率接近 100%。
谢谢您的指点。
[e]:Michael Hampton 对机器本身的评论很有道理。它们都是 HP 微型服务器,配备 800MHz 的 Athlon II Neo 双核处理器。根据 ,两者的额定速度均为 2600 bogomips 左右/proc/cpuinfo
,因此我认为两者的 CPU 百分比应该相当。
答案1
我也遇到了同样的问题,但 BIND 的 CPU 使用率不是增加了 5%,而是增加了大约 10 倍 - 从大约 6% 到 19% 的 CPU(在单核上)增加到大约 150% 到 200% 的 CPU。
正如 Håkan Lindqvist 所言,这是因为我(有意而非通过某种备份程序)启用了 DNSSEC。因为有人建议我这样做,以解决一些不相关的问题。
如果您的 DNS 服务器使用了大量 CPU,您应该考虑关闭这些值:
dnssec-enable yes;
dnssec-validation auto;
dnssec-lookaside . trust-anchor dlv.isc.org.;