Search for chef 100% cpu issue and you will find a lot of sugestions ranging from reboot the server, to restart RabbitMQ and often to check the kernel max file limit.
All of those do not help! What does help is checking RabbitMQ with
rabbitmqctl report | grep -A3 file_descriptors
and have a look at the printed limits and usage. Here is an example:
In my case the 100% CPU usage was caused by all of the file handles being used up which for some reason causes RabbitMQ 2.8.4 to go into a crazy endless loop rarely responding at all.
The "total_limit" value is the "nofile" limit for the maximum number of open files you can check using "ulimit -n" as RabbitMQ user. Increase it permanently by defining a RabbitMQ specific limit for example in /etc/security/limits.d/rabbitmq.conf:
rabbitmq soft nofile 10000
or using for example
ulimit -n 10000
from the start script or login scripts. Then restart RabbitMQ. The CPU usage should be gone.
Update: This problem only affects RabbitMQ releases up to 1.8.4 and should be fixed starting with 1.8.5.