Здравствуйте!
Имеем 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 FreePID 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 (по одной на каждый из имеющихся у нас доменов) и на обеих одинаковая проблема.
truss-ом потыкать если он есть в freebsd 4.9
>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)мне мало о чем говорит :((
>Какая есть возможность узнать, откуда поступают запросы, которые так грузят процесс?
>И вообще, какие есть идеи по поводу того, отчего могут быть такие
>тормоза?Снять tcpdump, или даже лучше netflow на 53 порт?
>Снять tcpdump, или даже лучше netflow на 53 порт?Сурово, конечно, но если не останется выхода, то так и сделаю. Благо, кое-какие инструменты имеются и внешние.
включить лог запросов и посмотреть и какими запросами грузит
посмотреть кал-во рекурсивынх клиентов висящих на серваке - если много - то зарезать в минимум
посмотреть настройки сервака кому вообзе разрешена рекурсия - мож кто левый присосался с почтовиком проверяющим реверсы ))
Была недавно такая же проблема.
Причина была в debug-логе, который был включен накануне поздно вечером для отладки кое-каких моментов и благополучно забыт. Зато в на след. день, когда юзеры часов в 11 утра "проснулись", нарисовалась точно такая же картина, какую вы описываете.
Кроме того запись на HDD на сист блоке просто не гасла, named успел накрутить около 1Gb лога.
>С недавнего времени стали заметны сильные тормоза сервера, а причиной является непосредственно
>процесс named. Такие, что порой сервер не успевает разрешать имена. Машинка
>не мощная, но все же 90% постоянной загрузки CPU это многовато.
>Причем таких машинок у нас 2 (по одной на каждый из имеющихся
>у нас доменов) и на обеих одинаковая проблема.Итак, благодарю всех откликнувшихся. Вопрос решился, хотя его решение скорее всего никому особенно не пригодится - слишком уж специфическая была проблема. Обнаружили при помощи wireshark'а, просниферив все запросы к DNS-серверу.
Оказалось, что проблема именно в наличии двух ДНС-серверов в ДМЗ, когда у одного из них два айпишника. Структура сети была такова, что при потребности разрешить имя из другого домена, днс-запрос посылался второму серверу, где формировался ответ и пытался вернуться на второй айпишиник первого днс-сервера %), начиналась какая-то котовасия (плюс между серверами стоит ASA) и в итоге порождался этакий DNS-шторм из DNS-запросов и ответов (как бы коряво это не звучало). Запретил встречные форварды и все! Опять загрузка ЦП порядка 0,1%.
Еще раз всем спасибо, да пусть преследует вас стабильная работа всех серверов!