Join GitHub today
GitHub is home to over 36 million developers working together to host and review code, manage projects, and build software together.Sign up
Growing RAM usage in recvContent #272
Hello amqp maintainers,
the user also reported:
our amqp consumption routine is single threaded.
note this was produced with
now, the route in the relay was configured like so:
as for how that translates into the options passed in to the amqp library, it's probably easiest/clearest if i just link you to our code at https://github.com/graphite-ng/carbon-relay-ng/blob/fa4a07caa9a9f85463441cfb66d615bc475a320b/input/amqp.go (StartAMQP and consumeAMQP functions)
personally i know little of rabbitmq/amqp (in fact this functionality was contributed by others but I'm trying to support it) so i'm not even sure if we're just misusing the library or not, but to you it might be obvious..
Your code seems to rely on the automatic acknowledgement mode and no prefetch (see tutorial 2. Therefore RabbitMQ will deliver to it as fast as possible and there is no way to for consumer to throttle the rate.
Have you considered using manual acknowledgement and a bounded prefetch, say, 200 or 300?
Unless you are cancelling consumers or closing channels, #264 is unrelated. That issue only leaks memory when there are in flight messages (the higher the prefetch the bigger the effect) when a consumer is cancelled and you don't explicitly drain the consumer delivery chan.