LINUX.ORG.RU
ФорумAdmin

Как уменьшить аппетиты named?

 , ,


0

3

Всем привет. Имеется небольшой VPS с весьма ограниченными ресурсами - всего 256Mb RAM. На этот VPS под управлением операционной системы CentOS 7 я установил PHP 7.3, NginX и bind 9.9.4-74 Изучая вывод команды top я обратил внимание, что named занимает очень большой объем памяти RAM - 42.8%

PID  USER  PR NI VIRT   RES    SHR  S %CPU %MEM TIME+   COMMAND
1546 named 20 0  232960 104352 3376 S 0.0  42.8 0:00.56 named

Вот конфиг named.conf

acl "trusted" {
    127.0.0.1;
    SERVER_IP;
};

// these are just a list of ip's that I consider bogus and just ignore them
acl "fakeips" {
#        0.0.0.0/8;
};

options {
    listen-on port 53 { 127.0.0.1;SERVER_IP; };
    directory   "/var/named";
    dump-file   "/var/named/data/cache_dump.db";
    statistics-file "/var/named/data/named_stats.txt";
    memstatistics-file "/var/named/data/named_mem_stats.txt";
    allow-query { any; };
    allow-query-cache { none; };
    allow-recursion { trusted; };
    allow-notify { trusted; };
    allow-transfer { trusted; };
    version "not currently available";
    blackhole { fakeips; };

    dnssec-enable yes;
    dnssec-validation yes;
    dnssec-lookaside auto;

    /* Path to ISC DLV key */
    bindkeys-file "/etc/named.iscdlv.key";

    managed-keys-directory "/var/named/dynamic";

    pid-file "/run/named/named.pid";
    session-keyfile "/run/named/session.key";
};

logging {
        channel default_debug {
                file "data/named.run";
                severity dynamic;
        };
};

zone "." IN {
    type hint;
    file "named.ca";
};

include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";

Подскажите, есть ли способы уменьшить аппетиты named? Так, чтобы это не влияло на скорость VPS.

Вот вывод из Debian 9

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
  610 bind      20   0  330276  71972   9484 S   1.7  3.5  33:39.27 named

В системе 2Гб оперативной памяти и того потребление памяти 70 Мб.

Конфиг посложнее, чем ваш, держит две зоны.

infomeh ★★
()
Ответ на: комментарий от Deleted
stamps/configure: stamps/prepare
	dh_testdir
	rm -rf build
	mkdir -p build
	cd build && ../configure --prefix=/usr \
		--mandir=\$${prefix}/share/man \
		--libdir=\$${prefix}/lib/$(DEB_HOST_MULTIARCH) \
		--infodir=\$${prefix}/share/info \
		--sysconfdir=/etc/bind \
		--with-python=python3 \
		--localstatedir=/ \
		--enable-threads \
		--enable-largefile \
		--with-libtool \
		--enable-shared \
		--enable-static \
		--with-gost=no \
		--with-openssl=/usr \
		--with-gssapi=/usr \
		--with-gnu-ld \
		--with-geoip=/usr \
		--with-atf=no \
		--enable-ipv6 \
		--enable-rrl \
		--enable-filter-aaaa \
		--enable-native-pkcs11 \
		--with-pkcs11=\$${prefix}/lib/$(DEB_HOST_MULTIARCH)/softhsm/libsofthsm2.so \
		--with-randomdev=/dev/urandom \
		$(EXTRA_FEATURES)

Вот кусок сценария сборки deb пакета bind.

infomeh ★★
()

а так ли он нужен этот bind в таком сценарии? может хватит dnsmasq или unbound?

Novell-ch ★★★★★
()
Ответ на: комментарий от infomeh
named     3474  3.4  3.7 545384 309524 ?       Ssl   2018 20605:28 /usr/sbin/named -u named -t /var/named/chroot

# service named restart

named     2957  104  0.4 385748 37632 ?        Ssl  14:58   0:02 /usr/sbin/named -u named -t /var/named/chroot

# grep -c '^zone' /etc/named.conf
820

futurama ★★★★★
()
Ответ на: комментарий от futurama

Какой объём оперативной памяти?

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
 1982 bind      20   0  300376  36140   9212 S   2.0  1.8   0:00.39 named

Вот после рестарта.

infomeh ★★
()

Все замечательно. CentOS 7 + PHP 7.3 + NginX и 256Mb RAM
Хороший сервер, очень хороший. Но виноват «слоненок» bind.

anc ★★★★★
()
Ответ на: комментарий от futurama

Потому, что я не очень понимаю твой вывод.

Вывод ТС и мой мне понятен, там указан процент использования памяти, если ты приводишь свой вывод для сравнения, то показывай в той же форме, как и уже указанные в теме примеры.

Иначе твой вывод не имеет смысла.

infomeh ★★
()

@manolls, в общем, я бы поступил так:

  • Убедился, что настройки named правильные сами по себе: не раздаются посторонние записи и сервер доступен только тем, кому он должен быть доступен (если, например, он должен работать только внутри какого-нибудь VPN).
  • Попробовал задать какой-нибудь фиксированный max-cache-size (по умолчанию лимита на размер нет, записи удаляются из кеша по TTL). Возможно есть какие-то ещё настройки в конфиге, влияющие на потребление памяти (надо гуглить).
  • Если это не поможет, то пересобрал бы пакет с named без --with-tuning=large (это довольно просто сделать при помощи утилиты mock).
  • Если предыдущий пункт делать лень или он тоже не помогает, то перешёл бы на более легковесную реализацию DNS-сервера.
Deleted
()
Последнее исправление: Deleted (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.