Jump to content
Калькуляторы

[РЕШЕНО] Проблемы с рапределением нагрузки между процессорами Периодически вся нагрузка ложится на одно из ядер

Здравствуйте. Есть сервер с CentOS release 6.6 (Final). Ядро 3.10.84-1.el6.elrepo.x86_64. Выполняет роли NAT (iptables), шейпера (tc), dhcp (isc dhcp), dns (bind). Прерывания распределяются по ядрам процессора. Пока аплинк был 400, всё работало без сбоев. Как только подняли до 550 заметили такую проблему: несколько раз в день сервер перестаёт отвечать на запросы. В ходе диагностики выяснили, что в это время все прерывания сыплются на одно ядро.

 

Когда всё хорошо, прерывания распределяются примерно равномерно. Когда всё плохо - скрин во вложении

 

Плюс в консоль стали сыпаться такие сообщения:

Message from syslogd@srv1 at Sep 28 09:37:06 ...
kernel:Uhhuh. NMI received for unknown reason 39 on CPU 6.

Message from syslogd@srv1 at Sep 28 09:37:06 ...
kernel:Do you have a strange power saving mode enabled?

Message from syslogd@srv1 at Sep 28 09:37:06 ...
kernel:Dazed and confused, but trying to continue

 

Подскажите, в чём может быть дело?

Edited by asid2006

Share this post


Link to post
Share on other sites

Вывод perf top когда всё хорошо:

 32,75%  [kernel]                    [k] _raw_spin_lock
22,50%  [kernel]                    [k] u32_classify
10,11%  [kernel]                    [k] __netif_receive_skb_core
 9,93%  [kernel]                    [k] dev_queue_xmit_nit
 4,62%  [kernel]                    [k] tc_classify_compat
 1,02%  [kernel]                    [k] rb_prev

 

Когда плохо:

 28,92%  [kernel]                 [k] __netif_receive_skb_core
28,75%  [kernel]                 [k] dev_queue_xmit_nit
10,02%  [kernel]                 [k] u32_classify

Share this post


Link to post
Share on other sites

Покажите cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor

 

[root@srv1 ~]# cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
powersave
powersave
powersave
powersave
powersave
powersave
powersave
powersave

Share this post


Link to post
Share on other sites

echo performance > /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor

Сделал, проблема осталась

Edited by asid2006

Share this post


Link to post
Share on other sites

Вроде всё решилось. Проблема была в:

1. Перегрев процессора. Температура была 83 градуса. Снял с сервера крышку, опустилась до 56. После решения сервер стал пропадать на гораздо меньшие промежутки времени.

2. Настройки DHCP сервера. Он ловил запросы со всех интерфейсов и поэтому тупил. После того, как обозначил один единственный, всё стало хорошо.

 

Сообщения до сих пор вылезают, но кроме этого никаких проблем не наблюдается.

Share this post


Link to post
Share on other sites

Решилось не до конца. Связь с сервером не пропадает, но вечером снова появились проблемы: скорость абонентам выдаётся не полностью, хотя общий канал не забивается, иногда теряются пакеты.

 

perf top:

 61,23%  [kernel]             [k] _raw_spin_lock
19,81%  [kernel]             [k] u32_classify
 3,94%  [kernel]             [k] tc_classify_compat

Share this post


Link to post
Share on other sites

После перезагрузки сервера ошибки исчезли, нагрузка снизилась, баллансировка пришла в норму. Проблема решена

Share this post


Link to post
Share on other sites

Еще проблемы с блоком питания могут давать такой эффект

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this