URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 88437
[ Назад ]

Исходное сообщение
"Bind (named) жестоко грузит систему"

Отправлено Popokatepetl , 17-Мрт-10 08:15 
Здравствуйте!
Имеем DNS-сервер BIND 8.3 на FreeBSD 4.9. Сейчас планируем перенос на значительно более новый, но все же хотелось выяснить, почему так происходит.
С недавнего времени стали заметны сильные тормоза сервера, а причиной является непосредственно процесс named. Такие, что порой сервер не успевает разрешать имена. Машинка не мощная, но все же 90% постоянной загрузки CPU это многовато.
Вот что выдает top:

33 processes:  2 running, 31 sleeping
CPU states: 84.0% user,  0.0% nice,  1.9% system,  0.4% interrupt, 13.6% idle
Mem: 65M Active, 119M Inact, 47M Wired, 13M Cache, 35M Buf, 3392K Free
Swap: 6000M Total, 100K Used, 6000M Free

  PID USERNAME        PRI NICE  SIZE    RES STATE    TIME   WCPU    CPU COMMAND
  107 root             64   0 23664K 19036K RUN    367.4H 79.98% 79.98% named
93824 root             30   0  1908K  1016K RUN      0:01 10.92%  2.83% top
   90 root              2   0   500K   252K select 213:01  0.00%  0.00% routed
...

Сначала я грешил на серверы антиспама, которые через ДНС постоянно проверяют записи в обратных зонах доменов с которого сыплется почта, но временно развернув эти серверы за разрешением имен в интернет, я не получил улучшения ситуации.
Какая есть возможность узнать, откуда поступают запросы, которые так грузят процесс?
И вообще, какие есть идеи по поводу того, отчего могут быть такие тормоза?

Причем таких машинок у нас 2 (по одной на каждый из имеющихся у нас доменов) и на обеих одинаковая проблема.


Содержание

Сообщения в этом обсуждении
"Bind (named) жестоко грузит систему"
Отправлено hizel , 17-Мрт-10 09:53 
truss-ом потыкать если он есть в freebsd 4.9


"Bind (named) жестоко грузит систему"
Отправлено Popokatepetl , 17-Мрт-10 12:59 
>truss-ом потыкать если он есть в freebsd 4.9

Есть-то он есть, но информация вида

recvfrom(0x14,0xbfbfec1c,0x1001,0x0,0xbfbffc20,0xbfbfec18) = 64 (0x40)
sendto(0x4,0x90cb380,0x35,0x0,0x82593e4,0x10)    = 53 (0x35)
gettimeofday(0x80e391c,0x0)                      = 0 (0x0)
gettimeofday(0xbfbffba8,0x0)                     = 0 (0x0)
select(0x18,0x812e020,0x812e120,0x812e220,0xbfbffb78) = 1 (0x1)
sendto(0x4,0x8363000,0x40,0x0,0x819e144,0x10)    = 64 (0x40)
gettimeofday(0x80e391c,0x0)                      = 0 (0x0)
gettimeofday(0xbfbffba8,0x0)                     = 0 (0x0)

мне мало о чем говорит :((


"Bind (named) жестоко грузит систему"
Отправлено Алексей , 17-Мрт-10 11:12 
>Какая есть возможность узнать, откуда поступают запросы, которые так грузят процесс?
>И вообще, какие есть идеи по поводу того, отчего могут быть такие
>тормоза?

Снять tcpdump, или даже лучше netflow на 53 порт?


"Bind (named) жестоко грузит систему"
Отправлено Popokatepetl , 17-Мрт-10 13:03 
>Снять tcpdump, или даже лучше netflow на 53 порт?

Сурово, конечно, но если не останется выхода, то так и сделаю. Благо, кое-какие инструменты имеются и внешние.


"Bind (named) жестоко грузит систему"
Отправлено Pahanivo , 17-Мрт-10 11:21 
включить лог запросов и посмотреть и какими запросами грузит
посмотреть кал-во рекурсивынх клиентов висящих на серваке - если много - то зарезать в минимум
посмотреть настройки сервака кому вообзе разрешена рекурсия - мож кто левый присосался с почтовиком проверяющим реверсы ))

"Bind (named) жестоко грузит систему"
Отправлено Medlar , 17-Мрт-10 13:38 
Была недавно такая же проблема.
Причина была в debug-логе, который был включен накануне поздно вечером для отладки кое-каких моментов и благополучно забыт. Зато в на след. день, когда юзеры часов в 11 утра "проснулись", нарисовалась точно такая же картина, какую вы описываете.
Кроме того запись на HDD на сист блоке просто не гасла, named успел накрутить около 1Gb лога.

"Bind (named) жестоко грузит систему"
Отправлено Popokatepetl , 22-Мрт-10 15:59 
>С недавнего времени стали заметны сильные тормоза сервера, а причиной является непосредственно
>процесс named. Такие, что порой сервер не успевает разрешать имена. Машинка
>не мощная, но все же 90% постоянной загрузки CPU это многовато.
>Причем таких машинок у нас 2 (по одной на каждый из имеющихся
>у нас доменов) и на обеих одинаковая проблема.

Итак, благодарю всех откликнувшихся. Вопрос решился, хотя его решение скорее всего никому особенно не пригодится - слишком уж специфическая была проблема. Обнаружили при помощи wireshark'а, просниферив все запросы к DNS-серверу.
Оказалось, что проблема именно в наличии двух ДНС-серверов в ДМЗ, когда у одного из них два айпишника. Структура сети была такова, что при потребности разрешить имя из другого домена, днс-запрос посылался второму серверу, где формировался ответ и пытался вернуться на второй айпишиник первого днс-сервера %), начиналась какая-то котовасия (плюс между серверами стоит ASA) и в итоге порождался этакий DNS-шторм из DNS-запросов и ответов (как бы коряво это не звучало). Запретил встречные форварды и все! Опять загрузка ЦП порядка 0,1%.
Еще раз всем спасибо, да пусть преследует вас стабильная работа всех серверов!