vadius Опубликовано 24 ноября, 2011 · Жалоба Всем привет. Решил поднять тему снова, так как зависания сервера продолжаются (раз в 5-6 дней). Ни обновления, ни тюнинг не помогают. Удалось получить корку ядра. В отладке ядра несилён, так что если нужна какая инфа пишите. ns# kgdb kernel.debug /var/crash/vmcore.0 ... Unread portion of the kernel message buffer: Fatal trap 12: page fault while in kernel mode cpuid = 6; apic id = 32 fault virtual address = 0xffffffff00040061 fault code = supervisor read data, page not present instruction pointer = 0x20:0xffffffff805121ab stack pointer = 0x28:0xffffff823b9948c0 frame pointer = 0x28:0xffffff823b994940 code segment = base 0x0, limit 0xfffff, type 0x1b = DPL 0, pres 1, long 1, def32 0, gran 1 processor eflags = interrupt enabled, resume, IOPL = 0 current process = 0 (em2 taskq) trap number = 12 panic: page fault cpuid = 6 KDB: stack backtrace: #0 0xffffffff80460a2e at kdb_backtrace+0x5e #1 0xffffffff8042f5d7 at panic+0x187 #2 0xffffffff806f4ba0 at trap_fatal+0x290 #3 0xffffffff806f4ef1 at trap_pfault+0x201 #4 0xffffffff806f53af at trap+0x3df #5 0xffffffff806dcd24 at calltrap+0x8 #6 0xffffffff805128ef at icmp_error+0x24f #7 0xffffffff80508d10 at ip_fastforward+0x810 #8 0xffffffff804dc2a8 at ether_demux+0x198 #9 0xffffffff804dc64d at ether_input+0x17d #10 0xffffffff8028111a at em_rxeof+0x1ca #11 0xffffffff8028159b at em_handle_que+0x5b #12 0xffffffff8046c335 at taskqueue_run_locked+0x85 #13 0xffffffff8046c4ce at taskqueue_thread_loop+0x4e #14 0xffffffff80404a7f at fork_exit+0x11f #15 0xffffffff806dd26e at fork_trampoline+0xe Uptime: 5d5h1m10s Dumping 1454 out of 8119 MB:..2%..12%..21%..31%..41%..51%..61%..71%..81%..91%Attempt to write outside dump device boundaries. offset(12884921344), mediaoffset(4294999552), length(65536), mediasize(8589934592). Dump map grown while dumping. Retrying... Dumping 1474 out of 8119 MB: Reading symbols from /boot/kernel/coretemp.ko...Reading symbols from /boot/kernel/coretemp.ko.symbols...done. done. Loaded symbols for /boot/kernel/coretemp.ko Reading symbols from /boot/kernel/blank_saver.ko...Reading symbols from /boot/kernel/blank_saver.ko.symbols...done. done. Loaded symbols for /boot/kernel/blank_saver.ko #0 doadump () at pcpu.h:224 224 __asm("movq %%gs:0,%0" : "=r" (td)); (kgdb) list *0xffffffff805121ab 0xffffffff805121ab is in icmp_reflect (../../../netinet/ip_icmp.c:702). 697 */ 698 ifp = m->m_pkthdr.rcvif; 699 if (ifp != NULL && ifp->if_flags & IFF_BROADCAST) { 700 IF_ADDR_LOCK(ifp); 701 TAILQ_FOREACH(ifa, &ifp->if_addrhead, ifa_link) { 702 if (ifa->ifa_addr->sa_family != AF_INET) 703 continue; 704 ia = ifatoia(ifa); 705 if (satosin(&ia->ia_broadaddr)->sin_addr.s_addr == 706 t.s_addr) { (kgdb) bt #0 doadump () at pcpu.h:224 #1 0xffffffff8042f120 in boot (howto=260) at ../../../kern/kern_shutdown.c:441 #2 0xffffffff8042f5c1 in panic (fmt=Variable "fmt" is not available. ) at ../../../kern/kern_shutdown.c:614 #3 0xffffffff806f4ba0 in trap_fatal (frame=0xc, eva=Variable "eva" is not available. ) at ../../../amd64/amd64/trap.c:824 #4 0xffffffff806f4ef1 in trap_pfault (frame=0xffffff823b994810, usermode=0) at ../../../amd64/amd64/trap.c:740 #5 0xffffffff806f53af in trap (frame=0xffffff823b994810) at ../../../amd64/amd64/trap.c:477 #6 0xffffffff806dcd24 in calltrap () at ../../../amd64/amd64/exception.S:228 #7 0xffffffff805121ab in icmp_reflect (m=0xffffff00291ba000) at ../../../netinet/ip_icmp.c:702 #8 0xffffffff805128ef in icmp_error (n=0xffffff002a871c00, type=689676512, code=0, dest=0, mtu=0) at ../../../netinet/ip_icmp.c:313 #9 0xffffffff80508d10 in ip_fastforward (m=0xffffff002a871c00) at ../../../netinet/ip_fastfwd.c:402 #10 0xffffffff804dc2a8 in ether_demux (ifp=0xffffff0002707800, m=0xffffff002a871c00) at ../../../net/if_ethersubr.c:830 #11 0xffffffff804dc64d in ether_input (ifp=0xffffff0002707800, m=0xffffff002a871c00) at ../../../net/if_ethersubr.c:753 #12 0xffffffff8028111a in em_rxeof (rxr=0xffffff0002780c00, count=1999, done=0x0) at ../../../dev/e1000/if_em.c:4311 #13 0xffffffff8028159b in em_handle_que (context=Variable "context" is not available. ) at ../../../dev/e1000/if_em.c:1489 #14 0xffffffff8046c335 in taskqueue_run_locked (queue=0xffffff0002783e00) at ../../../kern/subr_taskqueue.c:250 #15 0xffffffff8046c4ce in taskqueue_thread_loop (arg=Variable "arg" is not available. ) at ../../../kern/subr_taskqueue.c:387 #16 0xffffffff80404a7f in fork_exit (callout=0xffffffff8046c480 <taskqueue_thread_loop>, arg=0xffffff8000834748, frame=0xffffff823b994c50) at ../../../kern/kern_fork.c:876 #17 0xffffffff806dd26e in fork_trampoline () at ../../../amd64/amd64/exception.S:602 #18 0x0000000000000000 in ?? () #19 0x0000000000000000 in ?? () #20 0x0000000000000000 in ?? () #21 0x0000000000000000 in ?? () #22 0x0000000000000000 in ?? () #23 0x0000000000000000 in ?? () #24 0x0000000000000000 in ?? () #25 0x0000000000000000 in ?? () #26 0x0000000000000000 in ?? () #27 0x0000000000000000 in ?? () #28 0x0000000000000000 in ?? () #29 0x0000000000000000 in ?? () #30 0x0000000000000000 in ?? () #31 0x0000000000000000 in ?? () #32 0x0000000000000000 in ?? () #33 0x0000000000000000 in ?? () #34 0x0000000000000000 in ?? () #35 0x0000000000000000 in ?? () #36 0x0000000000000000 in ?? () #37 0x0000000000000000 in ?? () #38 0x0000000000000000 in ?? () #39 0x0000000000000000 in ?? () #40 0x0000000000000000 in ?? () #41 0x0000000000000000 in ?? () #42 0xffffffff809b1a00 in affinity () #43 0x0000000000000000 in ?? () #44 0x0000000000000000 in ?? () #45 0xffffff000271d460 in ?? () #46 0xffffff823b994140 in ?? () #47 0xffffff823b9940e8 in ?? () #48 0xffffff0002b858c0 in ?? () #49 0xffffffff80453bc2 in sched_switch (td=0xffffffff8046c480, newtd=0xffffff8000834748, flags=Variable "flags" is not available. ) at ../../../kern/sched_ule.c:1860 Previous frame inner to this frame (corrupt stack?) Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Ivan_83 Опубликовано 24 ноября, 2011 · Жалоба ip_fastforward - отключите, это для одноядерных хорошо. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
vadius Опубликовано 24 ноября, 2011 · Жалоба Пробовал ставить net.inet.ip.fastforwarding=0, с полгода назад эксперементировал, не помогало. Надо будет попробовать сейчас, может после обновления ядра, что поменялось. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
vadius Опубликовано 27 ноября, 2011 · Жалоба С net.inet.ip.fastforwarding=0 сервер перезагрузился через 3 дня, корка не создалась. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
st_re Опубликовано 27 ноября, 2011 · Жалоба А что там за ошибки валятся icmp_error / icmp_reflect ? /* * Generate an error packet of type error * in response to bad packet ip. */ tcpdumpом посмотрите, что там за ошибки ? Может отключить какие net.inet.icmp.drop_redirect net.inet.tcp.blackhole net.inet.udp.blackhole ? Ошибку конечно не вылечит, но снизит вероятность... Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Сильвер Опубликовано 28 ноября, 2011 · Жалоба С net.inet.ip.fastforwarding=0 сервер перезагрузился через 3 дня, корка не создалась. Можно попробовать поставить http://people.freebsd.org/~avg/stop_scheduler_on_panic.8.x.diff для того, чтобы дампы писались. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Dyr Опубликовано 28 ноября, 2011 · Жалоба ip_fastforward - отключите, это для одноядерных хорошо. М-м-м...независимо от топика, можно пояснить данное утверждение? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Ivan_83 Опубликовано 28 ноября, 2011 · Жалоба ip_fastforward - отключите, это для одноядерных хорошо. М-м-м...независимо от топика, можно пояснить данное утверждение? При фастфорваде пакет не ставится ни в какие ISR очереди и пр, а проходит на вылет, в случае роутинга. Притом есть пакет с опциями, или предназначем этому хосту или ещё что то (не помню уже), то он заворачивается в очередь, и там он снова чекается (ip_input продублирован в фастфорваде) - это увеличивает нагрузку на проц. Однопроцовым пофик, у них всё равно это ядро будет пакет обрабатывать пока он уйдёт/дропнется/приложение получит, и профит в том, что меньше переключений контекстов, и больше попаданий в кеш проца. У многопроцовых имеет смысл одному ядру допустим прерывания обрабатывать и пакеты в очереди распихивать, а остальные ядра могут заниматся разборами этих очередей. При такой обработке нагрузка более равномерно по ядрам распределяется. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...