2015-08-06 14 views
14

Zaimplementowałem rabbitmq w mojej aplikacji i działa na serwerze Windows Server 2008, problem polega na tym, że erl.exe pobiera wysokie użycie procesora, jak czasami osiąga 40-45% użycia procesora, nawet w idealnym przypadku (gdy nie przetwarza się żadnej kolejki) zajmuje to co najmniej 4-15% wykorzystania procesora.RabbitMQ: erl.exe podejmujący wysokie użycie procesora

Co może być przyczyną wzięcia wysokiego użycia procesora? Czy jest jakieś ustawienie lub jakakolwiek inna rzecz, którą muszę zrobić.

+0

Co zawiera dziennik serwera? –

+0

@old_sound Nic o erl. – jkyadav

+0

Mam na myśli, w dziennikach RabbitMQ –

Odpowiedz

1

Mówisz, że nawet jeśli nie przetwarzasz kolejki, nadal jest to 4-15%, ale czy twoja aplikacja działa? Jeśli nie byłeś wcześniej, spróbuj monitorować erl, podczas gdy żadna aplikacja nie używa Królika.

Jedną z rzeczy, która przychodzi do głowy jest to, że możesz używać QueingBasicConsumer w pętli i może to przyczyniać się do zużycia procesora. Jeśli używasz QueingBasicConsumer i jest to przyczyna trafienia, spróbuj zastąpić ją EventingBasicConsumer (tak, aby nie robić zajętego oczekiwania) i sprawdzić, czy masz poprawę.

Również, w jaki sposób twoja aplikacja używa Królika? Zgodnie z documentation każde połączenie sieciowe jest zabezpieczone przez wątek w tle, a jeśli tworzysz kilka połączeń w aplikacji, może to być kolejny powód spowolnienia.