The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"зависание Linux, rcu_sched detected stalls on CPUs/tasks, SMP"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Оптимизация и Промышленные системы (Разное)
Изначальное сообщение [ Отслеживать ]

"зависание Linux, rcu_sched detected stalls on CPUs/tasks, SMP"  +/
Сообщение от maxnetstat (ok), 02-Окт-18, 11:43 
Добрый день!
Прошу помощи в решении проблемы.
Сам уже более недели не могу с ней справится.

Столкнулся с проблемой периодического подвисания сервера.

#---------------
Данные о железе:
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 ядра хватает, но ведь это не решение проблемы...

Может кто-то с чем-то подобным сталкивался?
Могут ли подобные симптомы возникнуть по вине оперативной памяти?

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения [Сортировка по ответам | RSS]

1. Сообщение от eRIC (ok), 03-Окт-18, 07:19   +/
> 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

многие обходили эту панику через отключение ipv6 или nosmp. если есть возможность забустрапить свежий Debian и проверить на новом ядре, ну и свежим Quagga поиграть

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #2

2. Сообщение от maxnetstat (ok), 03-Окт-18, 10:03   +/
>> 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
> многие обходили эту панику через отключение ipv6 или nosmp. если есть возможность
> забустрапить свежий Debian и проверить на новом ядре, ну и свежим
> Quagga поиграть

Спасибо за ответ:)
smp я отключил. но получил в итоге 1 ядро вместо 8.
ipv6 также отключен через sysctl.

Обновить теоретически возможно, но на практике проблема в том,
что ОС уже подготовлена, обкатана в качестве маршрутизатора.
Данное решение используется на нескольких серверах, и обновление одного из них повлечет
ситуацию, когда одинаковые по функционалу сервера будут на разных версия ОС.
А это проблема, ведь они перестают быть взаимозаменяемыми и потребуется обновление всех
серверов :)
Возможно и стоит этим в итоге заняться, но подобные вещи должны планироваться, а на это времени пока нет.
Да и не принесет в целом профита. Того что есть с головой достаточно.
К тому же, такая же система установлена на другом сервере с процессором Intel(R) Xeon(R) CPU E3-1230 V2 @ 3.30GHz, и там подобных проблем нет.

Думаю попробовать сменить оперативную память (установлена DDR4-2400 ECC Unbuffered), т.к. натыкался в инете на то, что замена памяти решила проблему.
Но это уже скорее от того, что варианты "лечения" системы подходят к концу :)


Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1 Ответы: #3

3. Сообщение от eRIC (ok), 03-Окт-18, 20:05   +/
> Обновить теоретически возможно, но на практике проблема в том,
> что ОС уже подготовлена, обкатана в качестве маршрутизатора.
> Данное решение используется на нескольких серверах, и обновление одного из них повлечет
> серверов :)

я не про обычное обновление всей системы писал, а про утилиту Debootstrap. посмотрите на утилиту эту на досуге, очень эффективная вещь в хозяйстве.

> Думаю попробовать сменить оперативную память (установлена DDR4-2400 ECC Unbuffered),
> т.к. натыкался в инете на то, что замена памяти решила проблему.

возможно, будем ждать ваших результатов ;)

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #2 Ответы: #4

4. Сообщение от maxnetstat (ok), 04-Окт-18, 08:40   +/

> я не про обычное обновление всей системы писал, а про утилиту Debootstrap.
> посмотрите на утилиту эту на досуге, очень эффективная вещь в хозяйстве.

Знаю о ней, но никогда не использовал. Посмотрю, спасибо :)

>> Думаю попробовать сменить оперативную память (установлена DDR4-2400 ECC Unbuffered),
>> т.к. натыкался в инете на то, что замена памяти решила проблему.
> возможно, будем ждать ваших результатов ;)

К сожалению, пока нечем заменить память.

Вчера мне подсказали отключить HyperThreading, но ее отключение не привело к положительным изменения.
Описываю все свои действия, вдруг кому пригодится:)

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #3 Ответы: #6

6. Сообщение от asdmkw (?), 29-Апр-21, 21:17   +/

>> я не про обычное обновление всей системы писал, а про утилиту Debootstrap.
>> посмотрите на утилиту эту на досуге, очень эффективная вещь в хозяйстве.
> Знаю о ней, но никогда не использовал. Посмотрю, спасибо :)
>>> Думаю попробовать сменить оперативную память (установлена DDR4-2400 ECC Unbuffered),
>>> т.к. натыкался в инете на то, что замена памяти решила проблему.
>> возможно, будем ждать ваших результатов ;)
> К сожалению, пока нечем заменить память.
> Вчера мне подсказали отключить HyperThreading, но ее отключение не привело к положительным
> изменения.
> Описываю все свои действия, вдруг кому пригодится:)

C-state отключен? Max performace, в bios, влючен?
Отключение powersave mode+throttling:
intel_idle.max_cstate=0 processor.max_cstate=0 intel_pstate=disable acpi=force powersaved=off(старье)

Отключение watchdog-в и проверок, которые могут давать фризы:
mce=ignore_ce nmi_watchdog=0 nowatchdog

Если отключен HT, то можно включить
idle=poll #температура будет повыше, но снижает задержки
cpuidle.off=1

Можно разобраться с балансировкой прерывайний, отключить динамику
acpi_irq_nobalance

Отключить динамические прерывания, перейдя на старый режим
nohz=off

Если хочется выжать максимум, то отключить фиксы безопасности:
mitigations=off (для >=4)
norandmaps(sysctl.conf: kernel.randomize_va_space = 0)
noibrs noibpb nopti nospectre_v1 nospectre_v2 l1tf=off spectre_v2_user=off nospec_store_bypass_disable no_stf_barrier mds=off spectre_v2=off

Дальше уже тюнить параметры сетевухи через ethtool, распределять их по ядрам(numa etc).

Посмотреть в сторону busy pools:
#net.core.busy_poll = 100
#net.core.busy_read = 100

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #4 Ответы: #7

7. Сообщение от maxnetstat (ok), 30-Апр-21, 11:14   +/
>[оверквотинг удален]
> nohz=off
> Если хочется выжать максимум, то отключить фиксы безопасности:
> mitigations=off (для >=4)
> norandmaps(sysctl.conf: kernel.randomize_va_space = 0)
> noibrs noibpb nopti nospectre_v1 nospectre_v2 l1tf=off spectre_v2_user=off nospec_store_bypass_disable
> no_stf_barrier mds=off spectre_v2=off
> Дальше уже тюнить параметры сетевухи через ethtool, распределять их по ядрам(numa etc).
> Посмотреть в сторону busy pools:
> #net.core.busy_poll = 100
> #net.core.busy_read = 100

Спасибо за информацию!
Добавлю в закладки и в случае необходимости опробую ваши советы!
на данный момент проблема решена переходом на аппаратные маршрутизаторы (не из-за этой проблемы)

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #6


Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру