LINUX.ORG.RU
ФорумAdmin

Почему процесс жрет много процессорного времени, зависая в select?

 , , , ,


0

1

Почему процесс жрет много процессорного времени, зависая в select? Конкретно процесс beam.smp висит:

strace:

Process 2005 attached - interrupt to quit select(0, NULL, NULL, NULL, NULL

При этом:

top:

2005 rabbitmq 20 0 2125m 56m 2576 S 56.6 0.7 169:21.78 beam.smp

56,6% - это загрузка процессора.

При том маршрутизации очередей в RabbitMQ не так много.

По памяти не так и много:

58MB beam.smp

Некий erlang'овский rpmd-daemon отвисает на таких системных выховах:

Process 1017 attached - interrupt to quit select(7, [3 5], NULL, NULL, {3, 71750}) = 0 (Timeout) gettimeofday({1426691822, 95294}, NULL) = 0 select(7, [3 5], NULL, NULL, {5, 0}) = 0 (Timeout) gettimeofday({1426691827, 102147}, NULL) = 0 select(7, [3 5], NULL, NULL, {5, 0}) = 0 (Timeout)

Но редко и ресурсов не кушает почти.

А вот beam.smp в самом верху top'a.

В чем может быть проблема?

★★

Последнее исправление: ChAnton (всего исправлений: 2)

если тред висит в селекте, то он как раз проц вообще не жрет, нагрузку создают, вероятно, другие треды этого процесса (strace -f -p PID): нажми 'H' в top'е

и да, научись уже нормально форматировать сообщения

anonymous
()
30 апреля 2015 г.

Он зависает или просто часто select выполняет (в цикле например)?
Ещё там nfds неверный, может быть из-за этого. Написано в мане что для большей производительности там должно быть актуальное значение.

mittorn ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.