Go to file
Michael Davis ffda347e87 Hibernate after collecting garbage in `rabbit_mgmt_gc`
The `rabbit_mgmt_gc` gen_server performs garbage collections
periodically. When doing so it can create potentially fairly large
terms, for example by creating a set out of
`rabbit_exchange:list_names/0`. With many exchanges, for example, the
process memory usage can climb steadily especially when the management
agent is mostly idle since `rabbit_mgmt_gc` won't hit enough reductions
to cause a full-sweep GC on itself. Since the process is only active
periodically (once every 2min by default) we can hibernate it to GC the
terms it created.

This can save a medium amount of memory in situations where there are
very many pieces of metadata (exchanges, vhosts, queues, etc.). For
example on an idle single-node broker with 50k exchanges,
`rabbit_mgmt_gc` can hover around 50MB before being naturally GC'd. With
this patch the process memory usage stays consistent between `start_gc`
timer messages at around 1KB.

(cherry picked from commit ce5d42a9d6)
2025-05-16 23:59:19 +00:00
.github oci-make workflow: use 4.1.x versions on this branch 2025-05-14 10:39:33 -04:00
deps Hibernate after collecting garbage in `rabbit_mgmt_gc` 2025-05-16 23:59:19 +00:00
doc Add files to specify license info 2020-08-18 12:42:43 -07:00
mk Use Erlang.mk's native Elixir support for CLI 2025-03-25 15:20:23 +00:00
packaging Use Erlang.mk's native Elixir support for CLI 2025-03-25 15:20:23 +00:00
release-notes 4.1.0 release notes edits 2025-05-03 11:48:52 -04:00
scripts Remove Bazel files 2025-03-14 12:39:12 +00:00
selenium Wait until page is fully loaded 2025-05-09 18:47:45 +00:00
.dockerignore dockerignore deps 2021-03-18 15:04:39 +00:00
.elp.toml Add configuration for ELP language server 2024-05-16 11:10:40 +02:00
.git-blame-ignore-revs Add #13008 to .git-blame-ignore-revs 2025-01-02 12:08:04 -05:00
.gitignore Adds rabbit_auth_backend_internal_loopback 2025-04-27 08:58:57 +00:00
.mailmap Add .mailmap file 2023-11-03 13:17:30 +01:00
CODE_OF_CONDUCT.md Replace @rabbitmq.com addresses with rabbitmq-core@groups.vmware.com 2023-06-20 15:40:13 +04:00
COMMUNITY_SUPPORT.md Update COMMUNITY_SUPPORT.md 2024-12-03 11:03:34 -05:00
CONTRIBUTING.md Document RABBITMQ_METADATA_STORE in CONTRIBUTING.md 2024-12-19 17:40:34 -05:00
LICENSE Replace @rabbitmq.com addresses with rabbitmq-core@groups.vmware.com 2023-06-20 15:40:13 +04:00
LICENSE-APACHE2 (c) year bumps 2024-01-01 22:02:20 -05:00
LICENSE-MPL-RabbitMQ Revert drop of Exhibit B on MPL 2.0 2020-07-20 17:03:37 +01:00
Makefile Adds rabbit_auth_backend_internal_loopback 2025-04-27 08:58:57 +00:00
PKG_LINUX.md URL Cleanup 2019-03-20 03:22:38 -05:00
PKG_WINDOWS.md Windows doc tweaks 2018-11-08 13:48:46 -08:00
README.md Support AMQP over WebSocket (OSS part) 2025-01-27 17:50:47 +01:00
SERVER_RELEASES.md Update SERVER_RELEASES.md 2025-02-11 16:10:35 -05:00
erlang.mk Update Erlang.mk 2025-03-25 21:40:30 +00:00
erlang_ls.config erlang_ls: Add 'deps/*/' to include dirs 2024-04-12 09:49:34 -04:00
plugins.mk Adds rabbit_auth_backend_internal_loopback 2025-04-27 08:58:57 +00:00
rabbitmq-components.mk Adds rabbit_auth_backend_internal_loopback 2025-04-27 08:58:57 +00:00
rebar.config Revert "Format MQTT code with `erlfmt`" 2023-01-27 18:25:57 +00:00

README.md

Test

RabbitMQ Server

RabbitMQ is a feature rich, multi-protocol messaging and streaming broker. It supports:

Installation

Tutorials and Documentation

Some key doc guides include

RabbitMQ documentation is also developed on GitHub.

Commercial Features and Support

Getting Help from the Community

Please read the Community Support Eligibility Policy document first.

The recommended community forums are

Contributing

See CONTRIBUTING.md and our development process overview.

Questions about contributing, internals and so on are very welcome in GitHub Discussions or community Discord server in the core-and-plugin-dev channel.

Licensing

RabbitMQ server is licensed under the MPL 2.0.

Community Support Eligibility Policy document explains the open source RabbitMQ support policy adopted by the RabbitMQ Core Team.

Building From Source and Packaging

(c) 2007-2025 Broadcom. All Rights Reserved. The term “Broadcom” refers to Broadcom Inc. and/or its subsidiaries.