FreeBSD 6.2-RELEASE перезагружается

freebsd crash kernel

ОС периодически перезагружается или происходит crash. Раз в несколько часов. Машина используется как роутер в сети, шлюз в Инет, прокси-сервер (squid 3.0.STABLE1), веб-сервер (Apache/2.2.6). Так же настроена почта (sendmail + popper). Одна из подсетей nat'ится в Инет. Работает фаервол (ipfw). Ядро пересобирал.
К сети подключена через dial-up модем для выделенной линии.
В логах толком ничего нет. Зависимости между запуском задач и ротацией логов не вижу.
Машина находится все время практически в не нагруженном состоянии.
Железо пробовал менять. Подозреваю, что проблемы в конфигурации.
Вот опции, которые добавлял к стандартному конфигу при пересборке ядра:
options IPFIREWALL
options IPDIVERT
options IPFIREWALL_VERBOSE
options IPFIREWALL_VERBOSE_LIMIT=100000
options IPFIREWALL_FORWARD
options DUMMYNET
Версия
uname -a
FreeBSD ooo.ru 6.2-RELEASE FreeBSD 6.2-RELEASE #1: Wed Jan 30 16:22:34 VOLT 2008
Ответы:
Отладочная информация:
Unread portion of the kernel message buffer:
Fatal trap 12: page fault while in kernel mode
fault virtual address = 0x0
fault code = supervisor read, page not present
instruction pointer = 0x20:0xc088f672
stack pointer        = 0x28:0xd57e2a84
frame pointer        = 0x28:0xd57e2ab0
code segment = base 0x0, limit 0xfffff, type 0x1b
= DPL 0, pres 1, def32 1, gran 1
processor eflags = interrupt enabled, resume, IOPL = 0
current process = 866 (squid)
trap number = 12
panic: page fault
Uptime: 1h31m50s
Dumping 503 MB (2 chunks)
chunk 0: 1MB (159 pages) ... ok
chunk 1: 503MB (128656 pages) 487 471 455 439 423 407 391 375 359 343 327 311 295 279 263 247 231 215 199 183 167 151 135 119 103 87 71 55 39 23 7
#0  doadump () at pcpu.h:165
in pcpu.h
(kgdb) bt
#0  doadump () at pcpu.h:165
#1  0xc0672da2 in boot (howto=260) at /usr/src/sys/kern/kern_shutdown.c:409
#2  0xc0673038 in panic (fmt=0xc08e7b0f "%s") at /usr/src/sys/kern/kern_shutdown.c:565
#3  0xc08919b0 in trap_fatal (frame=0xd57e2a44, eva=0)
at /usr/src/sys/i386/i386/trap.c:837
#4  0xc0891717 in trap_pfault (frame=0xd57e2a44, usermode=0, eva=0)
at /usr/src/sys/i386/i386/trap.c:745
#5  0xc0891355 in trap (frame=
{tf_fs = -1020919800, tf_es = -713162712, tf_ds = 40, tf_edi = -1019727316, tf_esi = 0, tf_ebp = -713151824, tf_isp = -713151888, tf_ebx = 70, tf_edx = 108, tf_ecx = 17, tf_eax = -1019727316, tf_trapno = 12, tf_err = 0, tf_eip = -1064765838, tf_cs = 32, tf_eflags = 66055, tf_esp = -1015132800, tf_ss = -1019728840})
at /usr/src/sys/i386/i386/trap.c:435
#6  0xc087fd5a in calltrap () at /usr/src/sys/i386/i386/exception.s:139
#7  0xc088f672 in generic_bcopy () at /usr/src/sys/i386/i386/support.s:489
(kgdb) bt full
#0  doadump () at pcpu.h:165
No locals.
#1  0xc0672da2 in boot (howto=260) at /usr/src/sys/kern/kern_shutdown.c:409
first_buf_printf = 1
#2  0xc0673038 in panic (fmt=0xc08e7b0f "%s") at /usr/src/sys/kern/kern_shutdown.c:565
td = (struct thread *) 0xc3455300
bootopt = 260
newpanic = 0
ap = 0xc3455300 ""
buf = "page fault", '\0' <repeats 245 times>
#3  0xc08919b0 in trap_fatal (frame=0xd57e2a44, eva=0)
at /usr/src/sys/i386/i386/trap.c:837
code = 40
type = 12
ss = 40
esp = 0
softseg = {ssd_base = 0, ssd_limit = 1048575, ssd_type = 27, ssd_dpl = 0,
ssd_p = 1, ssd_xx = 0, ssd_xx1 = 3, ssd_def32 = 1, ssd_gran = 1}
msg = 0x0
#4  0xc0891717 in trap_pfault (frame=0xd57e2a44, usermode=0, eva=0)
at /usr/src/sys/i386/i386/trap.c:745
va = 0
vm = (struct vmspace *) 0x0
map = 0xc323ecb8
rv = 1
ftype = 1 '\001'
td = (struct thread *) 0xc3455300
p = (struct proc *) 0xc3627000
#5  0xc0891355 in trap (frame=
{tf_fs = -1020919800, tf_es = -713162712, tf_ds = 40, tf_edi = -1019727316, tf_esi = 0, tf_ebp = -713151824, tf_isp = -713151888, tf_ebx = 70, tf_edx = 108, tf_ecx = 17, tf_eax = -1019727316, tf_trapno = 12, tf_err = 0, tf_eip = -1064765838, tf_cs = 32, tf_eflags = 66055, tf_esp = -1015132800, tf_ss = -1019728840})
at /usr/src/sys/i386/i386/trap.c:435
td = (struct thread *) 0xc3455300
p = (struct proc *) 0xc3627000
sticks = 0
i = 0
ucode = 0
type = 12
code = 0
eva = 0
#6  0xc087fd5a in calltrap () at /usr/src/sys/i386/i386/exception.s:139
No locals.
#7  0xc088f672 in generic_bcopy () at /usr/src/sys/i386/i386/support.s:489
No locals.
(kgdb) quit
параметры компьютера и логи фаервола кинь
firewall.log:
Из данных, что вы привели, нельзя заподозрить ничего криминального в конфигурации. Все таки попробуйте еще раз проверить железо. В первую очередь, обратите внимание на память и блок питания.
В том то и беда. Криминала никакого нет. Все настроено. Все работает. Потом тупо падает в корку и перезагружается. Есть еще такая проблемка. Squid долго останавливается. И пробовал его пересобирать с разными опциями. На данный момент собрал с null хранилищем. Но падение связано с большой нагрузкой на squid. Даже скорее с большим числом запросов к нему. Потому что канал узенький, а клиентов много.
из паника видно, что проблема в сквиде, эта проблема решаема добавлением опций в ядро, опции следующие:
Спасибо, попробую этот вариант.
zingel, а можете пояснить, что значат эти опции.
Лучше дайте ссылку, где вообще можно почитать про такие внутренности ОС.
Мне интересно, на основании чего даны были эти цифры.
Такие опция рекомендуют девелоперы сквида в своей рассылке, про значения опций ядра можно прочитать в /usr/src/sys/conf/NOTES, статьи про тюнинг сквид:
Пересобрал ядро та же песня. Отключил squid. Все равно упал.
обновлять исходные коды ядра и пересобирать.
после написать сюда, я напишу какой тюнинг sysctl выполнить.
Коды ядра обновил через cvsup до RELENG_6_2.
Что за тюнинг надо делать?
И еще, может добавить TCP_DROP_SYNFIN в ядро?
можно, но не обязательно, тюнинг вот такой:
А зачем запрещать делать .core файлы? Они же нужны для отладки и т.д.


17 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.