2015-08-06 11 views
14

Ho implementato rabbitmq nella mia applicazione ed è in esecuzione su server Windows Server 2008, il problema è che erl.exe richiede un utilizzo elevato della CPU come a volte raggiunge il 40-45% di utilizzi della CPU, anche nel caso ideale (quando non si elabora alcuna coda) sono necessari almeno il 4-15% di utilizzo della CPU.RabbitMQ: erl.exe che richiede elevati utilizzi della CPU

Quale potrebbe essere il motivo dell'utilizzo elevato della CPU? C'è qualche impostazione o qualsiasi altra cosa che devo fare.

+0

Cosa c'è nei registri del server? –

+0

@old_sound Niente su erl. – jkyadav

+0

Voglio dire, sui log RabbitMQ –

risposta

1

Si dice che anche quando non si elabora una coda è ancora al 4-15%, ma l'applicazione è in esecuzione? Se non lo eri prima, prova a monitorare erl mentre nessuna applicazione sta usando Rabbit.

Una cosa che viene in mente è che si potrebbe usare il QueingBasicConsumer in un ciclo e che potrebbe contribuire all'utilizzo della CPU. Se stai usando QueingBasicConsumer ed è ciò che sta causando il colpo, prova a sostituirlo con EventingBasicConsumer (tale da non fare l'attesa) e vedere se hai miglioramenti.

Inoltre, in che modo la vostra applicazione utilizza Rabbit? Secondo lo documentation ogni IConnection è supportato da un thread in background e se stai creando un sacco di connessioni nella tua applicazione potrebbe essere un altro motivo del rallentamento.