2014-08-27 9 views
-2

Я запускаю сетевое серверное приложение в CentOS 6.5, имеющее 200 вилок с максимальным клиентом 100 000 для каждой вилки. Обычно трафик составляет 200 тыс. Запросов в минуту. Я видел, что загрузка процессора достигает максимума до 200%, а затем возвращается в нормальное состояние примерно на 2% в течение нескольких минут. Это происходит примерно через 30 минут или около того.Centos 6.5 Загрузка процессора с высокой частотой

Такое же приложение, работающее в RHEL 5.8, не имеет таких проблем.

Я хочу знать, что есть большая разница в производительности CentOS с RHEL.

У меня есть код для любых утечек памяти с использованием valgrind, но с той же проблемой. Эти вещи приходят мне в голову, что CentOS берет нагрузку на создание вилок после их смерти. Ядро CentOS не использует быстрые таймеры. Менеджер памяти CentOS не работает как RHEL. Должен ли я попробовать CentOS 6.3, либо он более стабилен, чем новый релиз CentOS 6.5.

+1

Очень похоже: http://stackoverflow.com/questions/25491949/centos-6-5-spike –

ответ

1

После многих дней мы обнаружили, что в нашем коде есть ошибка, которая делает ошибку сегментации в RHEL, и из-за многопроцессного приложения, возникшего после этого нового процесса, и RHEL эффективно освобождает память этого процесса, который вызван ошибка сегментации.

Однако, когда мы пытаемся использовать одно и то же приложение в CentOS, ошибка не вызывает ошибку сегментации, но делает процесс в спящем режиме с чрезвычайно высоким потреблением штока почти на 25%. Таким образом, процесс остается в системе и удерживает память, которая вызывает высокую нагрузку и всплески.

Заключение заключается в том, что при проверке утечки памяти при кодировании при работе в CentOS нужно быть очень хорошим, поскольку в отличие от RHEL CentOS недостаточно умен, чтобы исцелить себя.

Смежные вопросы