Иванов Денис Опубликовано 29 марта, 2012 (изменено) · Жалоба Приветствую, уважаемые! Может кто-то сталкивался с такой ситуацией: Имеется бридж, который по совместительству еще и шейпер (LARTC: HTB+U32+SFQ). Пропускает до 2Гбит. Раз в несколько дней падает в kernel panic. Обычно падает не в пики активности, а тихо так - часов в 5 утра. Красными полосками отметил моменты сбоев на графике: Снимки экранов: (практически одинаковые) Debian 6.0.4 x86_64 с ядром 2.6.33.20 собранным из исходников от kernel.org и драйвером igb 3.1.16 от Intel. В .config исходников ядра только одно изменение: # CONFIG_HZ_100 is not set # CONFIG_HZ_250 is not set # CONFIG_HZ_300 is not set CONFIG_HZ_1000=y CONFIG_HZ=1000 igb: rmmod igb modprobe igb IntMode=2,2,2,2 InterruptThrottleRate=5000,5000,5000,5000 RSS=4,4,4,4 QueuePairs=1,1,1,1 LLIPort=80 service networking restart (только что заметил по ошибке скопипащенную опцию LLIPort=80 - уберу после очередной kernel panic :) ) Организован бондинг: br0 / \ bond0 bond1 / \ / \ eth0 eth1 eth2 eth3 modprobe bonding max_bonds=2 mode=4 downdelay=200 updelay=200 xmit_hash_policy=layer2+3 # /etc/network/interfaces auto eth0 iface eth0 inet manual bond-master bond0 auto eth1 iface eth1 inet manual bond-master bond0 auto eth2 iface eth2 inet manual bond-master bond1 auto eth3 iface eth3 inet manual bond-master bond1 auto bond0 allow-hotplug bond0 iface bond0 inet manual bond_mode 802.3ad bond_miimon 100 bond_downdelay 200 bond_updelay 200 bond_primary eth0 eth1 auto bond1 allow-hotplug bond1 iface bond1 inet manual bond_mode 802.3ad bond_miimon 100 bond_downdelay 200 bond_updelay 200 bond_primary eth2 eth3 auto br0 allow-hotplug br0 iface br0 inet static address xxx.xxx.xxx.xxx netmask xxx.xxx.xxx.xxx network xxx.xxx.xxx.xxx broadcast xxx.xxx.xxx.xxx gateway xxx.xxx.xxx.xxx bridge_ports bond0 bond1 bridge_maxwait 0 Тюнинг интерфейсов: # привязка очередей к ядрам CPU echo 1 > /proc/irq/`cat /proc/interrupts | grep 'eth0-TxRx-0' | awk -F \: '{printf $1}'| tr -d ' '`/smp_affinity echo 2 > /proc/irq/`cat /proc/interrupts | grep 'eth0-TxRx-1' | awk -F \: '{printf $1}'| tr -d ' '`/smp_affinity echo 4 > /proc/irq/`cat /proc/interrupts | grep 'eth0-TxRx-2' | awk -F \: '{printf $1}'| tr -d ' '`/smp_affinity echo 8 > /proc/irq/`cat /proc/interrupts | grep 'eth0-TxRx-3' | awk -F \: '{printf $1}'| tr -d ' '`/smp_affinity echo 10 > /proc/irq/`cat /proc/interrupts | grep 'eth1-TxRx-0' | awk -F \: '{printf $1}'| tr -d ' '`/smp_affinity echo 20 > /proc/irq/`cat /proc/interrupts | grep 'eth1-TxRx-1' | awk -F \: '{printf $1}'| tr -d ' '`/smp_affinity echo 40 > /proc/irq/`cat /proc/interrupts | grep 'eth1-TxRx-2' | awk -F \: '{printf $1}'| tr -d ' '`/smp_affinity echo 80 > /proc/irq/`cat /proc/interrupts | grep 'eth1-TxRx-3' | awk -F \: '{printf $1}'| tr -d ' '`/smp_affinity echo 80 > /proc/irq/`cat /proc/interrupts | grep 'eth2-TxRx-0' | awk -F \: '{printf $1}'| tr -d ' '`/smp_affinity echo 40 > /proc/irq/`cat /proc/interrupts | grep 'eth2-TxRx-1' | awk -F \: '{printf $1}'| tr -d ' '`/smp_affinity echo 20 > /proc/irq/`cat /proc/interrupts | grep 'eth2-TxRx-2' | awk -F \: '{printf $1}'| tr -d ' '`/smp_affinity echo 10 > /proc/irq/`cat /proc/interrupts | grep 'eth2-TxRx-3' | awk -F \: '{printf $1}'| tr -d ' '`/smp_affinity echo 8 > /proc/irq/`cat /proc/interrupts | grep 'eth3-TxRx-0' | awk -F \: '{printf $1}'| tr -d ' '`/smp_affinity echo 4 > /proc/irq/`cat /proc/interrupts | grep 'eth3-TxRx-1' | awk -F \: '{printf $1}'| tr -d ' '`/smp_affinity echo 2 > /proc/irq/`cat /proc/interrupts | grep 'eth3-TxRx-2' | awk -F \: '{printf $1}'| tr -d ' '`/smp_affinity echo 1 > /proc/irq/`cat /proc/interrupts | grep 'eth3-TxRx-3' | awk -F \: '{printf $1}'| tr -d ' '`/smp_affinity # изменение размеров буферов ethtool -G eth0 rx 2048 ethtool -G eth0 tx 2048 ethtool -G eth1 rx 2048 ethtool -G eth1 tx 2048 ethtool -G eth2 rx 2048 ethtool -G eth2 tx 2048 ethtool -G eth3 rx 2048 ethtool -G eth3 tx 2048 # отключение flow control ethtool -A eth0 autoneg off rx off tx off ethtool -A eth1 autoneg off rx off tx off ethtool -A eth2 autoneg off rx off tx off ethtool -A eth3 autoneg off rx off tx off # изменение размера очереди передаваемых пакетов ifconfig eth0 txqueuelen 10000 ifconfig eth1 txqueuelen 10000 ifconfig eth2 txqueuelen 10000 ifconfig eth3 txqueuelen 10000 # установка параметров STP brctl stp br0 on brctl setfd br0 4 brctl setmaxage br0 6 brctl setbridgeprio br0 0 В iptables самые обычные правила, но используется ipset (из дистрибутива), conntrack выключен: rmmod iptable_nat rmmod nf_nat rmmod nf_conntrack_ipv4 rmmod nf_defrag_ipv4 rmmod nf_conntrack # cat /proc/net/ip_conntrack cat: /proc/net/ip_conntrack: Нет такого файла или каталога /etc/sysctl.conf # Controls source route verification net.ipv4.conf.default.rp_filter = 0 net.ipv4.conf.all.rp_filter = 0 # Do not accept source routing net.ipv4.conf.default.accept_source_route = 0 # Controls the System Request debugging functionality of the kernel kernel.sysrq = 0 # Controls whether core dumps will append the PID to the core filename # Useful for debugging multi-threaded applications kernel.core_uses_pid = 1 # Controls the use of TCP syncookies net.ipv4.tcp_syncookies = 1 # Controls the maximum size of a message, in bytes kernel.msgmnb = 65536 # Controls the default maxmimum size of a mesage queue kernel.msgmax = 65536 # Controls the maximum shared segment size, in bytes kernel.shmmax = 68719476736 # Controls the maximum number of shared memory segments, in pages kernel.shmall = 4294967296 net.core.wmem_default = 4194394 net.core.rmem_default = 8388608 net.core.wmem_max = 16777216 net.core.rmem_max = 16777216 net.ipv4.tcp_rmem = 8192 8388608 16777216 net.ipv4.tcp_wmem = 8192 4194394 16777216 net.ipv4.tcp_no_metrics_save = 1 net.core.netdev_max_backlog = 1000 net.core.somaxconn = 262144 net.ipv4.tcp_max_tw_buckets = 1440000 Как организован шейпер уже писал тут: http://forum.nag.ru/forum/index.php?showtopic=73649&view=findpost&p=695955 Клонировали эту систему на новую машину: ничего не изменилось. Отключили бы шейпер, но это может затянуться на несколько суток. В данный момент собираем сообщения ядра средствами netconsole и ждём очередной kernel panic... Изменено 25 апреля, 2012 пользователем Иванов Денис Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Иванов Денис Опубликовано 29 марта, 2012 · Жалоба Забыл написать, что там же работает snmpd /usr/sbin/snmpd -Lsd -Lf /dev/null -u snmp -I -smux -p /var/run/snmpd.pid xxx.xxx.xxx.xxx Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
C@T Опубликовано 29 марта, 2012 · Жалоба Драйвера от Intel igb-3.3.6 может попробуете? У нас условия другие, но с 3.1.16 периодически была паника, с 3.3.6 прекратилась Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
telecom Опубликовано 30 марта, 2012 · Жалоба Обычно падает не в пики активности, а тихо так - часов в 5 утра. Попробуйте убрать из конфига ядра все что связанно с засыпанием cpu, например вот так: # CONFIG_ACPI_PROCESSOR is not set # CONFIG_CPU_IDLE is not set Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Alex/AT Опубликовано 30 марта, 2012 (изменено) · Жалоба GRO выключайте. Ну и да, хотелось бы видеть полный бэктрейс, он у Вас обрывается на nf_iterate в самом верху, а выше наверняка есть еще данные. Изменено 30 марта, 2012 пользователем Alex/AT Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Alex/AT Опубликовано 30 марта, 2012 · Жалоба Плюс поглядите еще сюда, по возможности наложите на ядро: http://article.gmane.org/gmane.linux.network/192007 http://article.gmane.org/gmane.linux.network/192015 http://article.gmane.org/gmane.linux.network/192055 http://article.gmane.org/gmane.linux.network/192293 http://article.gmane.org/gmane.linux.network/192299 http://article.gmane.org/gmane.linux.network/192301 Естественно, придётся понимать логику работы - если с пониманием кода ядра туго, то лучше обновите ядро на 3.x - там это всё уже есть. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Иванов Денис Опубликовано 30 марта, 2012 (изменено) · Жалоба Благодарю! Не надеялся получить столько ответов. :) Ждём очередной kernel panic чтобы получить полный backtrace, затем пробуем свежие драйвера igb (3.3.6), отключить "засыпание CPU" и GRO. Если не поможет, то будем разбираться с предложенными патчами и другими ядрами. Изменено 30 марта, 2012 пользователем Иванов Денис Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Иванов Денис Опубликовано 3 апреля, 2012 · Жалоба Проработал неделю и наконец упал. :) [484747.917726] BUG: unable to handle kernel paging request at ffffc90012167000 [484747.917763] IP: [<ffffffff8124a2c3>] dev_queue_xmit+0x248/0x425 [484747.917794] PGD bf020067 PUD bf021067 PMD bd95a067 PTE 0 [484747.917820] Oops: 0000 [#1] SMP [484747.917839] last sysfs file: /sys/module/configfs/initstate [484747.917858] CPU 2 [484747.917875] Pid: 0, comm: swapper Not tainted 2.6.33.20 #1 SABERTOOTH X58/System Product Name [484747.917907] RIP: 0010:[<ffffffff8124a2c3>] [<ffffffff8124a2c3>] dev_queue_xmit+0x248/0x425 [484747.917941] RSP: 0018:ffff880001a43710 EFLAGS: 00010202 [484747.917960] RAX: ffff8800beeb2000 RBX: ffff8800b10f04e8 RCX: 0000000000000001 [484747.917990] RDX: ffff8800b0e10008 RSI: 0000000000010000 RDI: ffff8800b10f04e8 [484747.918020] RBP: ffff8800bb97e000 R08: 0000000080000000 R09: 0000000000000000 [484747.918050] R10: ffff8800b6c0d050 R11: 0000000000000000 R12: ffffc90012167000 [484747.918080] R13: ffff880037cac680 R14: 000000001ce20b03 R15: 0000000000001800 [484747.918110] FS: 0000000000000000(0000) GS:ffff880001a40000(0000) knlGS:0000000000000000 [484747.918142] CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b [484747.918160] CR2: ffffc90012167000 CR3: 00000000b78ea000 CR4: 00000000000006e0 [484747.918191] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 [484747.918221] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400 [484747.918251] Process swapper (pid: 0, threadinfo ffff8800beebe000, task ffff8800bee85340) [484747.918282] Stack: [484747.918296] ffff8800b10f04e8 ffffffff812705cf ffff8800a5bb3a80 ffff8800b10f04e8 [484747.918322] <0> 0000000000000000 ffff8800b0e1250c 000000001ce20b03 ffffffff81271022 [484747.918360] <0> 0000000001a437d0 0000000001a437d0 0000000080000000 ffff8800bd860c00 [484747.918410] Call Trace: [484747.918425] <IRQ> [484747.918442] [<ffffffff812705cf>] ? ip_finish_output2+0x1c2/0x20f [484747.918462] [<ffffffff81271022>] ? ip_queue_xmit+0x2e5/0x346 [484747.918482] [<ffffffff812823db>] ? tcp_transmit_skb+0x6f9/0x737 [484747.918502] [<ffffffff81284974>] ? tcp_write_xmit+0x80c/0x8fc [484747.918524] [<ffffffffa037792c>] ? br_nf_post_routing+0x1a4/0x1b7 [bridge] [484747.918546] [<ffffffff81284ab7>] ? __tcp_push_pending_frames+0x22/0x4e [484747.918566] [<ffffffff8127e384>] ? tcp_data_snd_check+0x21/0xea [484747.918586] [<ffffffff812814d6>] ? tcp_rcv_state_process+0x8b0/0x8ee [484747.918607] [<ffffffff8128747f>] ? tcp_v4_do_rcv+0x2dc/0x33c [484747.918626] [<ffffffff8128837a>] ? tcp_v4_rcv+0x40d/0x665 [484747.918646] [<ffffffff8126714a>] ? nf_hook_slow+0x62/0xc3 [484747.918666] [<ffffffff8126d4e6>] ? ip_local_deliver_finish+0x0/0x1ae [484747.918686] [<ffffffff8126d623>] ? ip_local_deliver_finish+0x13d/0x1ae [484747.918707] [<ffffffff8126d0c3>] ? ip_rcv_finish+0x31f/0x34b [484747.918727] [<ffffffff8126d35a>] ? ip_rcv+0x26b/0x2a6 [484747.918746] [<ffffffffa03738e6>] ? br_handle_frame_finish+0x112/0x14d [bridge] [484747.918778] [<ffffffffa037752c>] ? br_nf_pre_routing_finish+0x258/0x27a [bridge] [484747.918809] [<ffffffff8126714a>] ? nf_hook_slow+0x62/0xc3 [484747.918829] [<ffffffffa03772d4>] ? br_nf_pre_routing_finish+0x0/0x27a [bridge] [484747.918862] [<ffffffff8100e996>] ? read_tsc+0x5/0x16 [484747.918882] [<ffffffffa03781ad>] ? br_nf_pre_routing+0x534/0x553 [bridge] [484747.918905] [<ffffffff810df7ca>] ? get_partial_node+0x15/0x82 [484747.918925] [<ffffffff812670a4>] ? nf_iterate+0x43/0x87 [484747.918945] [<ffffffffa03737d4>] ? br_handle_frame_finish+0x0/0x14d [bridge] [484747.918975] [<ffffffff8126714a>] ? nf_hook_slow+0x62/0xc3 [484747.918995] [<ffffffffa03737d4>] ? br_handle_frame_finish+0x0/0x14d [bridge] [484747.919028] [<ffffffffa03a6731>] ? igb_alloc_rx_buffers+0x121/0x310 [igb] [484747.919049] [<ffffffff8100e1b4>] ? nommu_map_page+0x0/0x9c [484747.919070] [<ffffffffa0373ad4>] ? br_handle_frame+0x1b3/0x1db [bridge] [484747.919091] [<ffffffff8124915f>] ? netif_receive_skb+0x340/0x45e [484747.919111] [<ffffffff81249533>] ? dev_gro_receive+0xd5/0x223 [484747.919131] [<ffffffff812493aa>] ? napi_skb_finish+0x1c/0x31 [484747.919151] [<ffffffffa03a7020>] ? igb_poll+0x700/0xb70 [igb] [484747.919171] [<ffffffff8100e996>] ? read_tsc+0x5/0x16 [484747.919190] [<ffffffff812498ca>] ? net_rx_action+0xa9/0x1cb [484747.919210] [<ffffffff8108fe01>] ? __rcu_process_callbacks+0xb4/0x278 [484747.919232] [<ffffffff810499e6>] ? __do_softirq+0xe0/0x1a2 [484747.919252] [<ffffffff8101cf7b>] ? lapic_next_event+0x18/0x1d [484747.919273] [<ffffffff8108c1e4>] ? handle_IRQ_event+0x55/0x109 [484747.919293] [<ffffffff8100991c>] ? call_softirq+0x1c/0x30 [484747.919312] [<ffffffff8100b03f>] ? do_softirq+0x3f/0x79 [484747.919331] [<ffffffff81049847>] ? irq_exit+0x36/0x79 [484747.919350] [<ffffffff8100a7a2>] ? do_IRQ+0xa3/0xb9 [484747.919369] [<ffffffff812f6093>] ? ret_from_intr+0x0/0x11 [484747.919387] <EOI> [484747.919404] [<ffffffff8100fd62>] ? mwait_idle+0x6d/0x78 [484747.919423] [<ffffffff8100fd14>] ? mwait_idle+0x1f/0x78 [484747.919444] [<ffffffff81007b7f>] ? cpu_idle+0xa3/0xdd [484747.919462] Code: ab a8 00 00 00 45 89 ed 66 8b 83 a6 00 00 00 49 c1 e5 07 4c 03 ad 00 03 00 00 80 e4 cf 80 cc 20 4d 8b 65 08 66 89 83 a6 00 00 00 <49> 83 3c 24 00 0f 84 d2 00 00 00 4d 8d 84 24 9c 00 00 00 4c 89 [484747.919627] RIP [<ffffffff8124a2c3>] dev_queue_xmit+0x248/0x425 [484747.919649] RSP <ffff880001a43710> [484747.919665] CR2: ffffc90012167000 [484747.919863] ---[ end trace d69d3035353cd75c ]--- [484747.919903] Kernel panic - not syncing: Fatal exception in interrupt [484747.919947] Pid: 0, comm: swapper Tainted: G D 2.6.33.20 #1 [484747.919990] Call Trace: [484747.920028] <IRQ> [<ffffffff812f3e3a>] ? panic+0x78/0x13d [484747.920097] [<ffffffff81044b13>] ? kmsg_dump+0xa1/0x145 [484747.920139] [<ffffffff812f6eaf>] ? oops_end+0xa9/0xb6 [484747.920182] [<ffffffff8102b36a>] ? no_context+0x1f4/0x201 [484747.920226] [<ffffffff812f6375>] ? page_fault+0x25/0x30 [484747.920271] [<ffffffff8124a2c3>] ? dev_queue_xmit+0x248/0x425 [484747.920314] [<ffffffff812705cf>] ? ip_finish_output2+0x1c2/0x20f [484747.920358] [<ffffffff81271022>] ? ip_queue_xmit+0x2e5/0x346 [484747.920401] [<ffffffff812823db>] ? tcp_transmit_skb+0x6f9/0x737 [484747.920445] [<ffffffff81284974>] ? tcp_write_xmit+0x80c/0x8fc [484747.920490] [<ffffffffa037792c>] ? br_nf_post_routing+0x1a4/0x1b7 [bridge] [484747.920534] [<ffffffff81284ab7>] ? __tcp_push_pending_frames+0x22/0x4e [484747.920579] [<ffffffff8127e384>] ? tcp_data_snd_check+0x21/0xea [484747.920623] [<ffffffff812814d6>] ? tcp_rcv_state_process+0x8b0/0x8ee [484747.920669] [<ffffffff8128747f>] ? tcp_v4_do_rcv+0x2dc/0x33c [484747.920712] [<ffffffff8128837a>] ? tcp_v4_rcv+0x40d/0x665 [484747.920755] [<ffffffff8126714a>] ? nf_hook_slow+0x62/0xc3 [484747.920797] [<ffffffff8126d4e6>] ? ip_local_deliver_finish+0x0/0x1ae [484747.920842] [<ffffffff8126d623>] ? ip_local_deliver_finish+0x13d/0x1ae [484747.920887] [<ffffffff8126d0c3>] ? ip_rcv_finish+0x31f/0x34b [484747.920930] [<ffffffff8126d35a>] ? ip_rcv+0x26b/0x2a6 [484747.920972] [<ffffffffa03738e6>] ? br_handle_frame_finish+0x112/0x14d [bridge] [484747.921029] [<ffffffffa037752c>] ? br_nf_pre_routing_finish+0x258/0x27a [bridge] [484747.921084] [<ffffffff8126714a>] ? nf_hook_slow+0x62/0xc3 [484747.921128] [<ffffffffa03772d4>] ? br_nf_pre_routing_finish+0x0/0x27a [bridge] [484747.921182] [<ffffffff8100e996>] ? read_tsc+0x5/0x16 [484747.923851] [<ffffffffa03781ad>] ? br_nf_pre_routing+0x534/0x553 [bridge] [484747.923895] [<ffffffff810df7ca>] ? get_partial_node+0x15/0x82 [484747.923938] [<ffffffff812670a4>] ? nf_iterate+0x43/0x87 [484747.923981] [<ffffffffa03737d4>] ? br_handle_frame_finish+0x0/0x14d [bridge] [484747.924036] [<ffffffff8126714a>] ? nf_hook_slow+0x62/0xc3 [484747.924079] [<ffffffffa03737d4>] ? br_handle_frame_finish+0x0/0x14d [bridge] [484747.924134] [<ffffffffa03a6731>] ? igb_alloc_rx_buffers+0x121/0x310 [igb] [484747.924179] [<ffffffff8100e1b4>] ? nommu_map_page+0x0/0x9c [484747.924224] [<ffffffffa0373ad4>] ? br_handle_frame+0x1b3/0x1db [bridge] [484747.924268] [<ffffffff8124915f>] ? netif_receive_skb+0x340/0x45e [484747.924311] [<ffffffff81249533>] ? dev_gro_receive+0xd5/0x223 [484747.924354] [<ffffffff812493aa>] ? napi_skb_finish+0x1c/0x31 [484747.924399] [<ffffffffa03a7020>] ? igb_poll+0x700/0xb70 [igb] [484747.924441] [<ffffffff8100e996>] ? read_tsc+0x5/0x16 [484747.924483] [<ffffffff812498ca>] ? net_rx_action+0xa9/0x1cb [484747.924526] [<ffffffff8108fe01>] ? __rcu_process_callbacks+0xb4/0x278 [484747.924570] [<ffffffff810499e6>] ? __do_softirq+0xe0/0x1a2 [484747.924614] [<ffffffff8101cf7b>] ? lapic_next_event+0x18/0x1d [484747.924657] [<ffffffff8108c1e4>] ? handle_IRQ_event+0x55/0x109 [484747.924699] [<ffffffff8100991c>] ? call_softirq+0x1c/0x30 [484747.924742] [<ffffffff8100b03f>] ? do_softirq+0x3f/0x79 [484747.924785] [<ffffffff81049847>] ? irq_exit+0x36/0x79 [484747.924827] [<ffffffff8100a7a2>] ? do_IRQ+0xa3/0xb9 [484747.924869] [<ffffffff812f6093>] ? ret_from_intr+0x0/0x11 [484747.924911] <EOI> [<ffffffff8100fd62>] ? mwait_idle+0x6d/0x78 [484747.925023] [<ffffffff81007b7f>] ? cpu_idle+0xa3/0xdd Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Иванов Денис Опубликовано 3 апреля, 2012 (изменено) · Жалоба В 3х случаях из 4х время kernel panic совпало с временем выполнения cron'ом элементарного сценария архивирования конфигов: #!/bin/bash PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin DEVREGEXP="/var$" MINAVAIL=1 cd /scripts/backup/tars/ # удалить старые архивы while [ "`df -g | grep $DEVREGEXP | awk '{ print $4 }'`" -le "$MINAVAIL" ]; do LIST=`ls -tr` rm `echo $LIST | awk '{print $1}'` done # сформировать имя файла архива: годмесяцденьчасминута-bridge.tar NAME=`date +%Y%m%d%H%M-linbridge.tar` # добавить в архив директории # /etc /root /usr/local/etc /usr/local/www /var/spool/cron/crontabs /scripts # исключая директории # /root/tmp /scripts/backup/tars cd /scripts/backup/tars/ tar vcpf $NAME --exclude /root/tmp --exclude /scripts/backup/tars /etc /root /usr/local/etc /var/spool/cron/crontabs /scripts # передать архив в хранилище lftp <<End-Of-Session open xxx.xxx.xxx.xxx user linbridge ******** put $NAME bye End-Of-Session Размер архива ~70МБ. Изменено 4 апреля, 2012 пользователем Иванов Денис Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Иванов Денис Опубликовано 3 апреля, 2012 · Жалоба Установили драйвера igb 3.3.6, ждём... Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Alex/AT Опубликовано 4 апреля, 2012 (изменено) · Жалоба Вот. По полному трейсу проблема диагностируется достаточно легко. Связано с тем, что у бриджа одна очередь на tx, а у реальных интерфейсов - много, и номер очереди в skb получается некорректным. Примените патч и переберите ядро. У Вас в 2.6.33.20 код может чуть-чуть отличаться - найдите dev_pick_tx, что на что заменить - из патча очевидно. commit df32cc193ad88f7b1326b90af799c927b27f7654 Author: Tom Herbert <therbert@xxxxxxxxxx> Date: Mon Nov 1 12:55:52 2010 -0700 net: check queue_index from sock is valid for device In dev_pick_tx recompute the queue index if the value stored in the socket is greater than or equal to the number of real queues for the device. The saved index in the sock structure is not guaranteed to be appropriate for the egress device (this could happen on a route change or in presence of tunnelling). The result of the queue index being bad would be to return a bogus queue (crash could prersumably follow). Signed-off-by: Tom Herbert <therbert@xxxxxxxxxx> Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx> diff --git a/net/core/dev.c b/net/core/dev.c index 35dfb83..0dd54a6 100644 --- a/net/core/dev.c +++ b/net/core/dev.c @@ -2131,7 +2131,7 @@ static struct netdev_queue *dev_pick_tx(struct net_device *dev, } else { struct sock *sk = skb->sk; queue_index = sk_tx_queue_get(sk); - if (queue_index < 0) { + if (queue_index < 0 || queue_index >= dev->real_num_tx_queues) { queue_index = 0; if (dev->real_num_tx_queues > 1) Изменено 4 апреля, 2012 пользователем Alex/AT Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Иванов Денис Опубликовано 11 апреля, 2012 · Жалоба Alex/AT, очередное спасибо! igb 3.3.6 не панацея. Пропатчили ядро. Ждём... Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Иванов Денис Опубликовано 25 апреля, 2012 (изменено) · Жалоба 16 суток - полёт нормальный... :) До того как обновить версию igb, мы сделали клон бриджа. Патч помог обоим : bridge1: kernel 2.6.33.20 + патч + igb 3.3.6 bridge2: kernel 2.6.33.20 + патч + igb 3.1.16 Всем огромное спасибо! Вопрос закрыт. Изменено 25 апреля, 2012 пользователем Иванов Денис Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
killonik Опубликовано 2 декабря, 2013 (изменено) · Жалоба Всем привет! Сервер уходит в панику второй раз за неделю. Так же не в пики активности. Занят НАТингом. До 1.5 Гб/с. Debian GNU/Linux 6.0 x86_64 Ядро 2.6.33.20 с теми же изменениями # CONFIG_HZ_100 is not set # CONFIG_HZ_250 is not set # CONFIG_HZ_300 is not set CONFIG_HZ_1000=y CONFIG_HZ=1000 Тюнинг интерфейсов: ethtool -G eth8 rx 4096 ethtool -G eth8 tx 4096 ethtool -G eth9 rx 4096 ethtool -G eth9 tx 4096 ethtool -A eth9 autoneg off rx off tx off ethtool -A eth8 autoneg off rx off tx off ifconfig eth9 txqueuelen 10000 ifconfig eth8 txqueuelen 10000 #Привязваем очереди к ядрам ifconfig eth8 up /bin/echo 1 > /proc/irq/`cat /proc/interrupts | grep 'eth8-TxRx-7' | awk -F \: '{printf $1}'| tr -d ' '`/smp_affinity /bin/echo 2 > /proc/irq/`cat /proc/interrupts | grep 'eth8-TxRx-6' | awk -F \: '{printf $1}'| tr -d ' '`/smp_affinity /bin/echo 4 > /proc/irq/`cat /proc/interrupts | grep 'eth8-TxRx-5' | awk -F \: '{printf $1}'| tr -d ' '`/smp_affinity /bin/echo 8 > /proc/irq/`cat /proc/interrupts | grep 'eth8-TxRx-4' | awk -F \: '{printf $1}'| tr -d ' '`/smp_affinity /bin/echo 10 > /proc/irq/`cat /proc/interrupts | grep 'eth8-TxRx-3' | awk -F \: '{printf $1}'| tr -d ' '`/smp_affinity /bin/echo 20 > /proc/irq/`cat /proc/interrupts | grep 'eth8-TxRx-2' | awk -F \: '{printf $1}'| tr -d ' '`/smp_affinity /bin/echo 40 > /proc/irq/`cat /proc/interrupts | grep 'eth8-TxRx-1' | awk -F \: '{printf $1}'| tr -d ' '`/smp_affinity /bin/echo 80 > /proc/irq/`cat /proc/interrupts | grep 'eth8-TxRx-0' | awk -F \: '{printf $1}'| tr -d ' '`/smp_affinity ifconfig eth9 up /bin/echo 80 > /proc/irq/`cat /proc/interrupts | grep 'eth9-TxRx-7' | awk -F \: '{printf $1}'| tr -d ' '`/smp_affinity /bin/echo 40 > /proc/irq/`cat /proc/interrupts | grep 'eth9-TxRx-6' | awk -F \: '{printf $1}'| tr -d ' '`/smp_affinity /bin/echo 20 > /proc/irq/`cat /proc/interrupts | grep 'eth9-TxRx-5' | awk -F \: '{printf $1}'| tr -d ' '`/smp_affinity /bin/echo 10 > /proc/irq/`cat /proc/interrupts | grep 'eth9-TxRx-4' | awk -F \: '{printf $1}'| tr -d ' '`/smp_affinity /bin/echo 8 > /proc/irq/`cat /proc/interrupts | grep 'eth9-TxRx-3' | awk -F \: '{printf $1}'| tr -d ' '`/smp_affinity /bin/echo 4 > /proc/irq/`cat /proc/interrupts | grep 'eth9-TxRx-2' | awk -F \: '{printf $1}'| tr -d ' '`/smp_affinity /bin/echo 2 > /proc/irq/`cat /proc/interrupts | grep 'eth9-TxRx-1' | awk -F \: '{printf $1}'| tr -d ' '`/smp_affinity /bin/echo 1 > /proc/irq/`cat /proc/interrupts | grep 'eth9-TxRx-0' | awk -F \: '{printf $1}'| tr -d ' '`/smp_affinity дамп ядра: [9935471.262285] BUG: unable to handle kernel NULL pointer dereference at (null). [9935471.262313] IP: [<ffffffff81257c77>] fib_rules_lookup+0xaa/0xca. [9935471.262339] PGD 1995ab067 PUD 1999cc067PMD 0 . [9935471.262363] Oops: 0000 [#1]SMP . [9935471.262382] last sysfs file: /sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:08/ATK0110:00/hwmon/hwmon0/temp7_crit. [9935471.262421] CPU 1 . [9935471.262439] Pid: 0, comm: swapper Not tainted 2.6.33.20 #2 Rampage II Extreme/System Product Name. [9935471.262474] RIP: 0010:[<ffffffff81257c77>] [<ffffffff81257c77>] fib_rules_lookup+0xaa/0xca. [9935471.262512] RSP: 0018:ffff880007023b70 EFLAGS: 00010246.[9935471.262531] RAX: 0000000000000000 RBX: 0000000000000000 RCX: ffff880194b6f872. [9935471.262564] RDX: 000000005e3f040a RSI: ffff880007023c50 RDI: ffff8801bf393a40. [9935471.262596] RBP: ffff880007023c50 R08: ffffffff8185f0f0 R09: ffff880007023d28. [9935471.262628] R10: 0000000000000000 R11: 0000000000000000 R12: ffff8801bf3938c0. [9935471.262660] R13: ffff880007023bb0 R14: 0000000000000000 R15: ffff8801bf393938. [9935471.262693] FS: 0000000000000000(0000) GS:ffff880007020000(0000) knlGS:0000000000000000. [9935471.262726] CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b. [9935471.262747] CR2: 0000000000000000 CR3: 00000001999ca000 CR4: 00000000000006e0. [9935471.262779] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000. [9935471.262811] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400. [9935471.262844] Process swapper (pid: 0, threadinfo ffff8801bf0c0000, task ffff8801bf073780). [9935471.262879] Stack:. [9935471.262894] 000091e6ffff6e19 ffff880007023c10 ffff8801b38e8400 ffff88013f1c9f00. [9935471.262921] <0> 000000005e3f040a 0000000000000005 ffff8801b3400000 ffffffff8129dff7. [9935471.262962] <0> 0000000000000000 ffff880007023c10 0000000000000000 0000000000000006. [9935471.263016] Call Trace:. [9935471.263031] <IRQ> . [9935471.263051] [<ffffffff8129dff7>] ? fib_lookup+0x2d/0x3e. [9935471.263073] [<ffffffff8126ae8c>] ? ip_route_input_slow+0x122/0x80d. [9935471.263096] [<ffffffffa015a67b>] ? nf_nat_packet+0x93/0xb2 [nf_nat]. [9935471.263117] [<ffffffff8126b9d9>] ? ip_route_input+0x462/0x478. [9935471.263140] [<ffffffff8126cdac>] ? ip_rcv_finish+0x0/0x34b. [9935471.263161] [<ffffffff8126cde0>] ? ip_rcv_finish+0x34/0x34b. [9935471.263181] [<ffffffff8126d362>] ? ip_rcv+0x26b/0x2a6. [9935471.263203] [<ffffffff812493aa>] ? napi_skb_finish+0x1c/0x31. [9935471.263228] [<ffffffffa0250abb>] ? ixgbe_poll+0x4db/0x1740 [ixgbe]. [9935471.263251] [<ffffffff8108dc98>] ? handle_edge_irq+0xf6/0x120. [9935471.263272] [<ffffffff812498ca>] ? net_rx_action+0xa9/0x1cb. [9935471.263295] [<ffffffff810499e6>] ? __do_softirq+0xe0/0x1a2. [9935471.263316] [<ffffffff81049a60>] ? __do_softirq+0x15a/0x1a2. [9935471.263336] [<ffffffff8108c1e4>] ? handle_IRQ_event+0x55/0x109. [9935471.263358] [<ffffffff8100991c>] ? call_softirq+0x1c/0x30. [9935471.263378] [<ffffffff8100b03f>] ? do_softirq+0x3f/0x79. [9935471.263399] [<ffffffff81049847>] ? irq_exit+0x36/0x79. [9935471.263418] [<ffffffff8100a7a2>] ? do_IRQ+0xa3/0xb9. [9935471.263439] [<ffffffff812f60d3>] ? ret_from_intr+0x0/0x11. [9935471.263459] <EOI> . [9935471.263479] [<ffffffff8100fd62>] ? mwait_idle+0x6d/0x78. [9935471.263499] [<ffffffff8100fd14>] ? mwait_idle+0x1f/0x78. [9935471.263520] [<ffffffff81007b7f>] ? cpu_idle+0xa3/0xdd. [9935471.263540] Code: 75 a6 eb 24 3c 03 74 20 4c 89 e9 44 89 f2 48 89 ee 48 89 df 41 ff 54 24 28 83 f8 f5 74 0a f0 ff 43 10 49 89 5d 10 eb 17 48 8b 1b <48> 8b 03 4c 39 fb 0f 18 08 0f 85 71 ff ff ff b8 fd ff ff ff 5a . [9935471.263703] RIP [<ffffffff81257c77>] fib_rules_lookup+0xaa/0xca. [9935471.263726] RSP <ffff880007023b70>.[9935471.263743] CR2: 0000000000000000. [9935471.263942] BUG: unable to handle kernel . [9935471.263944] ---[ end trace e0a1f8d62a4b8511 ]---. [9935471.263945] Kernel panic - not syncing: Fatal exception in interrupt. [9935471.263946] Pid: 0, comm: swapper Tainted: G D 2.6.33.20 #2. [9935471.263947] Call Trace:. [9935471.263947] <IRQ> [<ffffffff812f3e4a>] ? panic+0x78/0x13d. [9935471.263950] [<ffffffff81044b13>] ? kmsg_dump+0xa1/0x145. [9935471.263951] [<ffffffff812f6eef>] ? oops_end+0xa9/0xb6. [9935471.263954] [<ffffffff8102b36a>] ? no_context+0x1f4/0x201. [9935471.263955] [<ffffffff812f63b5>] ? page_fault+0x25/0x30. [9935471.263957] [<ffffffff81257c77>] ? fib_rules_lookup+0xaa/0xca. [9935471.263958] [<ffffffff8129dff7>] ? fib_lookup+0x2d/0x3e. [9935471.263959] [<ffffffff8126ae8c>] ? ip_route_input_slow+0x122/0x80d. [9935471.263961] [<ffffffffa015a67b>] ? nf_nat_packet+0x93/0xb2 [nf_nat]. [9935471.263963] [<ffffffff8126b9d9>] ? ip_route_input+0x462/0x478. [9935471.263964] [<ffffffff8126cdac>] ? ip_rcv_finish+0x0/0x34b. [9935471.263966] [<ffffffff8126cde0>] ? ip_rcv_finish+0x34/0x34b. [9935471.263967] [<ffffffff8126d362>] ? ip_rcv+0x26b/0x2a6. [9935471.263968] [<ffffffff812493aa>] ? napi_skb_finish+0x1c/0x31. [9935471.263971] [<ffffffffa0250abb>] ? ixgbe_poll+0x4db/0x1740 [ixgbe]. [9935471.263973] [<ffffffff8108dc98>] ? handle_edge_irq+0xf6/0x120. [9935471.263974] [<ffffffff812498ca>] ? net_rx_action+0xa9/0x1cb. [9935471.263976] [<ffffffff810499e6>] ? __do_softirq+0xe0/0x1a2. [9935471.263977] [<ffffffff81049a60>] ? __do_softirq+0x15a/0x1a2. [9935471.263979] [<ffffffff8108c1e4>] ? handle_IRQ_event+0x55/0x109. [9935471.263980] [<ffffffff8100991c>] ? call_softirq+0x1c/0x30. [9935471.263981] [<ffffffff8100b03f>] ? do_softirq+0x3f/0x79. [9935471.263983] [<ffffffff81049847>] ? irq_exit+0x36/0x79. [9935471.263984] [<ffffffff8100a7a2>] ? do_IRQ+0xa3/0xb9. [9935471.263985] [<ffffffff812f60d3>] ? ret_from_intr+0x0/0x11. [9935471.263986] <EOI> [<ffffffff8100fd62>] ? mwait_idle+0x6d/0x78. [9935471.263988] [<ffffffff8100fd14>] ? mwait_idle+0x1f/0x78. [9935471.263989] [<ffffffff81007b7f>] ? cpu_idle+0xa3/0xdd. [9935471.265347] NULL pointer dereference at (null). [9935471.265414] IP: [<ffffffff81257c77>] fib_rules_lookup+0xaa/0xca. [9935471.265484] PGD 1af560067 PUD 1984cf067 PMD 0 . [9935471.265600] Oops: 0000 [#2] SMP . [9935471.265689] last sysfs file: /sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:08/ATK0110:00/hwmon/hwmon0/temp7_crit. [9935471.265749] CPU 7 . [9935471.265813] Pid: 0, comm: swapper Tainted: G D 2.6.33.20 #2 Rampage II Extreme/System Product Name. [9935471.265871] RIP: 0010:[<ffffffff81257c77>] [<ffffffff81257c77>] fib_rules_lookup+0xaa/0xca. [9935471.265953] RSP: 0018:ffff8800070e3b70 EFLAGS: 00010246. [9935471.265996] RAX: 0000000000000000 RBX: 0000000000000000 RCX: ffff8801bdb62089. [9935471.266051] RDX: 00000000bb39ae4f RSI: ffff8800070e3c50 RDI: ffff8801bf393a40. [9935471.266106] RBP: ffff8800070e3c50 R08: ffffffff8185f0f0 R09: ffff8800070e3d28. [9935471.266161] R10: 000000000194ce06 R11: ffff8800070e3ae4 R12: ffff8801bf3938c0. [9935471.266216] R13: ffff8800070e3bb0 R14: 0000000000000000 R15: ffff8801bf393938. [9935471.266271] FS: 0000000000000000(0000) GS:ffff8800070e0000(0000) knlGS:0000000000000000. [9935471.266328] CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b. [9935471.266371] CR2: 0000000000000000 CR3: 0000000196d97000 CR4: 00000000000006e0. [9935471.266426] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000. [9935471.266481] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400. [9935471.266536] Process swapper (pid: 0, threadinfo ffff8801bf11a000, task ffff8801bf0ee120). [9935471.266592] Stack:. [9935471.266630] 00000000acfe32c2 ffff8800070e3c10 ffff8801b38e8400 ffff88013ff79b00. [9935471.266750] <0> 00000000bb39ae4f 0000000000000005 ffff8801b3400000 ffffffff8129dff7. [9935471.266930] <0> 0000000000000000 ffff8800070e3c10 0000000000000000 491dfa8a765f2bfe. [9935471.267143] Call Trace:. [9935471.267181] <IRQ> . [9935471.267245] [<ffffffff8129dff7>] ? fib_lookup+0x2d/0x3e. [9935471.267288] [<ffffffff8126ae8c>] ? ip_route_input_slow+0x122/0x80d. [9935471.267334] [<ffffffffa00ef368>] ? nf_nat_fn+0x11d/0x155 [iptable_nat]. [9935471.267379] [<ffffffff8126b9d9>] ? ip_route_input+0x462/0x478. [9935471.267422] [<ffffffff8126cdac>] ? ip_rcv_finish+0x0/0x34b. [9935471.267466] [<ffffffff8126cde0>] ? ip_rcv_finish+0x34/0x34b. [9935471.267509] [<ffffffff8126d362>] ? ip_rcv+0x26b/0x2a6. [9935471.267552] [<ffffffff812493aa>] ? napi_skb_finish+0x1c/0x31. [9935471.267597] [<ffffffffa0250abb>] ? ixgbe_poll+0x4db/0x1740 [ixgbe]. [9935471.267642] [<ffffffff812498ca>] ? net_rx_action+0xa9/0x1cb. [9935471.267686] [<ffffffff810499e6>] ? __do_softirq+0xe0/0x1a2. [9935471.267729] [<ffffffff81049a60>] ? __do_softirq+0x15a/0x1a2. [9935471.267773] [<ffffffff8108c1e4>] ? handle_IRQ_event+0x55/0x109. [9935471.270523] [<ffffffff8100991c>] ? call_softirq+0x1c/0x30. [9935471.270566] [<ffffffff8100b03f>] ? do_softirq+0x3f/0x79. [9935471.270609] [<ffffffff81049847>] ? irq_exit+0x36/0x79. [9935471.270652] [<ffffffff8100a7a2>] ? do_IRQ+0xa3/0xb9. [9935471.270695] [<ffffffff812f60d3>] ? ret_from_intr+0x0/0x11. [9935471.270737] <EOI> . [9935471.270800] [<ffffffff8100fd62>] ? mwait_idle+0x6d/0x78. [9935471.270844] [<ffffffff8100fd14>] ? mwait_idle+0x1f/0x78. [9935471.270887] [<ffffffff81007b7f>] ? cpu_idle+0xa3/0xdd. [9935471.270930] Code: 75 a6 eb 24 3c 03 74 20 4c 89 e9 44 89 f2 48 89 ee 48 89 df 41 ff 54 24 28 83 f8 f5 74 0a f0 ff 43 10 49 89 5d 10 eb 17 48 8b 1b <48> 8b 03 4c 39 fb 0f 18 08 0f 85 71 ff ff ff b8 fd ff ff ff 5a . [9935471.272615] RIP [<ffffffff81257c77>] fib_rules_lookup+0xaa/0xca. [9935471.272684] RSP <ffff8800070e3b70>. [9935471.272724] CR2: 0000000000000000. подскажите? Изменено 2 декабря, 2013 пользователем killonik Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Abram Опубликовано 3 декабря, 2013 · Жалоба killonik, Для начала обновитесь на что-нибудь посвежее. Debian 7.2 на дворе. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...