Добрый день!
Прошу помощи в решении проблемы.
Сам уже более недели не могу с ней справится.Столкнулся с проблемой периодического подвисания сервера.
#---------------
Данные о железе:
CPU: Intel(R) Xeon(R) CPU E3-1270 v6 @ 3.80GHz (8 ядер)
MotherBoard: SuperMicro X11SSL-F
RAM: 8GB DDR4-2400 ECC Unbuffered Supermicro certified for Intel C232, C236 chipsets
Сеть: Intel 82599 10 Gigabit Network Connection
driver: ixgbe
version: 3.15.1-k
#---------------
Данные об ОС:
Debian 7.2
kernel 3.12.6
#---------------
Краткое описание сферы использования сервера:
Сервер используется как маршрутизатор (Quagga),
нагрузка на него сейчас небольшая - порядка 500-600 Мбит/с.
Планируется довести до 4-5 Гбит/с.
#---------------
Симптомы подвисания сервера:
Перестает отвечать на ICMP запросы и отдавать данные по SNMP (это со стороны системы мониторинга).
Также прекращает маршрутизировать трафик, BGP сессии, которые висят на нем также отваливаются.
Через 3-5 минут сервер "приходит в себя" и продолжает работать, при это периодически давая на себя задержки.
В dmesg в эти моменты вижу большое количество сообщений типа:
kernel: [283813.064128] INFO: rcu_sched detected stalls on CPUs/tasks: { 1} (detected by 2, t=5252 jiffies, g=22131346, c=22131345, q=6300)
kernel: [283813.064332] sending NMI to all CPUs:
kernel: [283813.064335] NMI backtrace for cpu 2
kernel: [283813.064337] CPU: 2 PID: 0 Comm: swapper/2 Not tainted 3.12.6.ipset-amd64 #3
kernel: [283813.064337] Hardware name: Supermicro Super Server/X11SSL-F, BIOS 2.2 05/23/2018
kernel: [283813.064339] task: ffff88026e0fc7e0 ti: ffff88026e12e000 task.ti: ffff88026e12e000
kernel: [283813.064340] RIP: 0010:[<ffffffff811b8008>] [<ffffffff811b8008>] kasprintf+0x43/0x43
kernel: [283813.064343] RSP: 0018:ffff880277883cc8 EFLAGS: 00000046
kernel: [283813.064344] RAX: 0000000000000000 RBX: 0000000000002710 RCX: 0000000000000007
kernel: [283813.064345] RDX: 0000000000000006 RSI: 0000000000000200 RDI: ffffffff8167b570
kernel: [283813.064346] RBP: ffff88027788db00 R08: 0000000000000002 R09: 0000000000000000
kernel: [283813.064347] R10: 0000000000000000 R11: 0000000000002710 R12: ffffffff8163a600
kernel: [283813.064347] R13: 0000000000000001 R14: ffff88026e12e000 R15: ffffffff8163a6c0
kernel: [283813.064349] FS: 0000000000000000(0000) GS:ffff880277880000(0000) knlGS:0000000000000000
kernel: [283813.064349] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
kernel: [283813.064350] CR2: 00007fa7748bd6f0 CR3: 000000000160b000 CR4: 00000000003407e0
kernel: [283813.064351] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
kernel: [283813.064352] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
kernel: [283813.064352] Stack:
kernel: [283813.064353] ffffffff810245d2 ffffffff8163a600 ffffffff8109ca5f 00000000ffffffc0
kernel: [283813.064355] 000000000000189c 0000000000000083 0000000000000002 0000000000000000
kernel: [283813.064356] ffff88026e0fc7e0 0000000000000000 0000000000000002 ffff88027788d0f0
kernel: [283813.064357] Call Trace:
kernel: [283813.064358] <IRQ>
kernel: [283813.064358] [<ffffffff810245d2>] ? arch_trigger_all_cpu_backtrace+0x5e/0x80
kernel: [283813.064364] [<ffffffff8109ca5f>] ? rcu_check_callbacks+0x3e4/0x4c3
kernel: [283813.064366] [<ffffffff81079df2>] ? tick_sched_do_timer+0x25/0x25
kernel: [283813.064368] [<ffffffff8103f55c>] ? update_process_times+0x31/0x5c
kernel: [283813.064370] [<ffffffff81079b4a>] ? tick_sched_handle+0x32/0x3d
kernel: [283813.064371] [<ffffffff81079e22>] ? tick_sched_timer+0x30/0x4c
kernel: [283813.064373] [<ffffffff81051119>] ? __run_hrtimer+0xab/0x152
kernel: [283813.064375] [<ffffffff81051747>] ? hrtimer_interrupt+0xc5/0x1a7
kernel: [283813.064377] [<ffffffff810238d6>] ? smp_apic_timer_interrupt+0x27/0x37
kernel: [283813.064379] [<ffffffff81354fca>] ? apic_timer_interrupt+0x6a/0x70
kernel: [283813.064381] [<ffffffff81038c15>] ? __do_softirq+0x8a/0x201
kernel: [283813.064382] [<ffffffff81355a9c>] ? call_softirq+0x1c/0x30
kernel: [283813.064384] [<ffffffff81003b7c>] ? do_softirq+0x2c/0x60
kernel: [283813.064385] [<ffffffff81038e51>] ? irq_exit+0x3b/0x7f
kernel: [283813.064387] [<ffffffff81003803>] ? do_IRQ+0x81/0x98
kernel: [283813.064388] [<ffffffff8134e6aa>] ? common_interrupt+0x6a/0x6a
kernel: [283813.064389] <EOI>
kernel: [283813.064390] [<ffffffff812764b5>] ? cpuidle_enter_state+0x43/0xa6
kernel: [283813.064393] [<ffffffff812764ae>] ? cpuidle_enter_state+0x3c/0xa6
kernel: [283813.064397] [<ffffffff812765ea>] ? cpuidle_idle_call+0xd2/0x142
kernel: [283813.064399] [<ffffffff81008fdd>] ? arch_cpu_idle+0x6/0x17
kernel: [283813.064401] [<ffffffff8106d526>] ? cpu_startup_entry+0x11e/0x194
kernel: [283813.064402] [<ffffffff8134e354>] ? _raw_spin_unlock_irqrestore+0x6/0x7
kernel: [283813.064404] [<ffffffff8102232d>] ? start_secondary+0x1df/0x1e5
Насколько я понимаю, ядра периодически "стопорятся".
Прочитав: https://www.kernel.org/doc/Documentation/RCU/stallwarn.txt
решил что проблема в работе функций энергосбережения процессора.
и поэтому я сделал:
- отключал в BIOS функции управления энергопотребления C-STATE, P-STATE.
- выгружал модуль acpi_cpufreq
Никакого результата это не принесло.
Пробовал разнести прерывания таким образом, чтобы eth0 работал на одном ядре, но также не помогло.
В итоге загрузил систему с опцией nosmp.
Прошли сутки, с сервером проблем нет, но я теперь обладатель одноядерного процессора вместо 8 ядер.
на данный момент мне и 1 ядра хватает, но ведь это не решение проблемы...
Может кто-то с чем-то подобным сталкивался?
Могут ли подобные симптомы возникнуть по вине оперативной памяти?