summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Effectively link the spawned processDiana Corbacho2017-09-011-6/+6
| | | | rabbitmq-server#1346
* Link process responsible of restart during autoheal, and abort if neededDiana Corbacho2017-08-312-7/+23
| | | | | | | | | | | If the process crashes unexpectedly, the autoheal process gets into a deadlock in the 'restarting' state, ignoring any new request from the winner. If the crash happens before the process is registered, no logs are generated. Thus, we need to link that process and abort the autoheal if the process finishes with a reason different from normal. rabbitmq-server#1346 [#150707017]
* Add rabbit.vm_memory_calculation_strategy to config examplerabbitmq_v3_6_12_rc1Michael Klishin2017-08-251-0/+5
|
* Merge pull request #1341 from rabbitmq/rabbitmq-server-1340Michael Klishin2017-08-241-1/+8
|\ | | | | Do not GC channel-queue metrics on mirror migration
| * Do not GC channel-queue metrics on mirror migrationDiana Corbacho2017-08-231-1/+8
| | | | | | | | | | rabbitmq-server#1340 [#150442817]
* | Merge pull request #1339 from rabbitmq/rabbitmq-server-1338Gerhard Lazu2017-08-223-5/+41
|\ \ | |/ |/| Read rabbitmq-env.conf a bit earlier to pick up two variables
| * Add target to run bats tests to MakefileGerhard Lazu2017-08-221-0/+18
| | | | | | | | | | | | | | | | | | The `bats` target will clone and install the bats command in a manner similar to `kerl` or `hex.pm`, i.e. to ERLANG_MK_TMP [#150452491] Signed-off-by: Luke Bakken <lbakken@pivotal.io>
| * Read rabbitmq-env.conf a bit earlier to pick up two variablesGerhard Lazu2017-08-222-5/+23
|/ | | | | | | | | | | | | Prior to this change, setting RABBITMQ_DISTRIBUTION_BUFFER_SIZE and/or RABBITMQ_SCHEDULER_BIND_TYPE would not be added to SERVER_ERL_ARGS because the latter variable was built prior to reading rabbitmq-env.conf Fixes #1338 [#150452491] Signed-off-by: Luke Bakken <lbakken@pivotal.io>
* Merge pull request #1326 from rabbitmq/rabbitmq-server-1324rabbitmq_v3_6_11_rc3rabbitmq_v3_6_11Michael Klishin2017-08-101-2/+14
|\ | | | | Start/stop windows service using `net` utility instead of `erlsrv`
| * Start/stop windows service using `net` utility instead of `erlsrv`Daniil Fedotov2017-08-081-2/+14
| | | | | | | | | | | | `erlsrv` doc suggests to use windows system control tools to control services. It prints weird error when error is occured (for example access is denied), so using `net` is prefered.
* | Move delays to the test where they belongMichael Klishin2017-08-101-1/+2
| |
* | Inject a delay after killing nodeMichael Klishin2017-08-101-0/+3
| | | | | | | | | | | | Like we do in partition_SUITE. References #1323.
* | Merge pull request #1325 from rabbitmq/rabbitmq-server-1323Michael Klishin2017-08-102-7/+30
|\ \ | |/ |/| Clean up orphaned exclusive queues
| * Add test for cleaning up dead exclusive queuesLuke Bakken2017-08-093-17/+23
| |
| * Begin adding test for #1323Luke Bakken2017-08-091-1/+11
| |
| * Correctly check for exclusive queueLuke Bakken2017-08-081-2/+2
| |
| * Add is_exclusive to queue deletion clauseLuke Bakken2017-08-081-6/+13
|/
* Merge pull request #1312 from rabbitmq/rabbitmq-server-1306rabbitmq_v3_6_11_rc2rabbitmq_v3_6_11_rc1Gerhard Lazu2017-07-272-3/+3
|\ | | | | Bump DEFAULT_DISTRIBUTION_BUFFER_SIZE to 128 MB
| * Bump DEFAULT_DISTRIBUTION_BUFFER_SIZE to 128 MBMichael Klishin2017-07-272-3/+3
|/ | | | | | | | | | After 24 hours of testing we haven't observed any anomalities or regressions. With this change multicast (mirroring) processes should be suspended less frequently, resulting in less variable throughput for mirroring (with link throughput of 1 GBit/s or greater). Closes #1306. [#149220393]
* Improve docsMichael Klishin2017-07-261-1/+11
|
* Update rabbitmq-components.mkMichael Klishin2017-07-261-1/+1
|
* Merge pull request #1302 from ↵rabbitmq_v3_6_11_milestone5Michael Klishin2017-07-251-10/+24
|\ | | | | | | | | rabbitmq/stable-gm-mem-usage-during-constant-redelivery Stable GM memory usage during constant redelivery
| * Run garbage collection in GM every 250msJean-Sébastien Pedron2017-07-251-7/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In high throughput scenarios, e.g. `basic.reject` or `basic.nack`, messages which belong to a mirrored queue and are replicated within a GM group, are quickly promoted to the old heap. This means that garbage collection happens only when the Erlang VM is under memory pressure, which might be too late. When a process is under pressure, garbage collection slows it down even further, to the point of RabbitMQ nodes running out of memory and crashing. To avoid this scenario, We want the GM process to garbage collect binaries regularly, i.e. every 250ms. The variable queue does the same for a similar reason: rabbitmq/rabbitmq-server#289 Initially, we wanted to use the number of messages as the trigger for garbage collection, but we soon discovered that different workloads (e.g. small vs large messages) would result in unpredictable and sub-optimal GC schedules. Before setting `fullsweep_after` to 0, memory usage was 2x higher (400MB vs 200MB) and throughput was 0.1x lower (18k vs 20k). With this `spawn_opt` setting, the general collection algorithm is disabled, meaning that all live data is copied at every garbage collection: http://erlang.org/doc/man/erlang.html#spawn_opt-3 The RabbitMQ deployment used for testing this change: * AWS, c4.2xlarge, bosh-aws-xen-hvm-ubuntu-trusty-go_agent 3421.11 * 3 RabbitMQ nodes running OTP 20.0.1 * 3 durable & auto-delete queues with 3 replicas each * each queue master was defined on a different RabbitMQ node * every RabbitMQ node was running 1 queue master & 2 queue slaves * 1 consumer per queue with QOS 100 * 100 durable messages @ 1KiB each * `basic.reject` operations ``` | Node | Message throughput | Memory usage | | ------ | -------------------- | -------------- | | rmq0 | 12K - 20K msg/s | 400 - 900 MB | | rmq1 | 12K - 20K msg/s | 500 - 1000 MB | | rmq2 | 12K - 20K msg/s | 500 - 800 MB | ``` [#148892851] Signed-off-by: Gerhard Lazu <gerhard@rabbitmq.com>
| * Remove hibernate from GMJean-Sébastien Pédron2017-07-241-3/+2
|/ | | | | | | | | | | | | | | We don't want to use the backoff/hibernate feature because we have observed that the GM process is suspended half of the time. We really wanted to replace gen_server2 with gen_server, but it was more important to keep changes in 3.6 to a minimum. GM will eventually be replaced, so switching it from gen_server2 to gen_server will be soon redundant. We simply do not understand some of the gen_server2 trade-offs well enough to feel strongly about this change. [#148892851] Signed-off-by: Gerhard Lazu <gerhard@rabbitmq.com>
* Remove the debug message about deleting queues without vhostsDaniil Fedotov2017-07-211-1/+0
|
* Merge pull request #1301 from rabbitmq/rabbitmq-server-1300Michael Klishin2017-07-211-8/+39
|\ | | | | Do not show queues with deleted vhost.
| * Do not show queues with deleted vhost.Daniil Fedotov2017-07-211-8/+39
|/ | | | | | | | | When vhost does not exist for a queue, which reside on a stopped node, the queue will not be displayed in the 'list_queues' command output. When a node goes back up, queues without vhost will be deleted. [Fixes #1300] [#149292743]
* Merge pull request #1295 from rabbitmq/rabbitmq-server-1294rabbitmq_v3_6_11_milestone4Michael Klishin2017-07-201-5/+11
|\ | | | | Report a difference between RSS and erlang total memory only if RSS is bigger.
| * Report a difference between RSS and erlang total memory only if RSS is bigger.Daniil Fedotov2017-07-181-5/+11
|/ | | | | | | | | | RSS can be either bigger than memory reported by `erlang:memory(total)` or smaller. Make sure we only add positive difference to "other" fraction in memory breakdown. Related to 0872a15a050176ab7598bc3d1b21a2d5c5af3052 [addresses #1294] [#149066379]
* rabbit_core_metrics_gc_SUITE: Wait for condition in a loopJean-Sébastien Pédron2017-07-121-4/+9
| | | | | This hopefully further improves commit 6f374fb48a5cc9972ce0bfcf747faa380e1d1e4d.
* Add vm_memory_calculation_strategy to ctl statusMichael Klishin2017-07-111-1/+2
| | | | | | | | | How total amount of memory is computed is an important piece of information: what the runtime reports and what tools such as 'ps' report will differ. http://erlang.org/pipermail/erlang-questions/2012-September/069337.html is a good source of information on some of the discrepancies.
* Replace timer:sleep with a loop waiting on a predicate.kjnilsson2017-07-111-5/+15
| | | | | To make it more likely to pass on resource constrained environments.
* SimplifyMichael Klishin2017-07-111-9/+6
| | | | | This code runs on server nodes, we can avoid using ctl commands.
* Merge pull request #1290 from rabbitmq/rabbitmq-server-1285Michael Klishin2017-07-111-4/+24
|\ | | | | Add test for set_vm_memory_high_watermark
| * Add test for set_vm_memory_high_watermarkGerhard Lazu2017-07-101-4/+24
| | | | | | | | | | | | | | | | | | | | This is meant to add a missing integration test that wraps up #1285 It's not a unit test and it can't run in paralle, but set_disk_free_limit does the same wrong thing. We should either remove them both or leave them as they are. [#148470947]
* | Remove OsTotal - ErlangTotal mem calculation from other_system memGerhard Lazu2017-07-101-4/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As discussed with @michaelklishin: We discovered that `erlang:memory(system).` can be almost as large as OsTotal when swapping is in effect. This means that total (processes + system) will be larger than the OsTotal, therefore OsTotal - ErlangTotal cannot be assumed to be non-negative. I think having some "unaccounted" memory is better than having it "accounted" as negative. re #1223 [finishes #148435813]
* | Merge pull request #1278 from rabbitmq/rabbitmq-management-427Michael Klishin2017-07-105-28/+90
|\ \ | |/ |/| Only preserve stats for local queues
| * Merge branch 'stable' into rabbitmq-management-427Michael Klishin2017-07-103-31/+34
| |\ | |/ |/|
* | Do not require a node to be running to execute decode, list_ciphers and ↵Daniil Fedotov2017-07-041-1/+2
| | | | | | | | list_hashes commands
* | Mention ctl decode arguments on manpage.Daniil Fedotov2017-07-041-1/+19
| |
* | unit_SUITE: Adapt rabbitmqctl_encode testcase to the new rabbit_control_pbe APIrabbitmq_v3_6_11_milestone3Jean-Sébastien Pédron2017-06-291-26/+10
| |
* | docs/rabbitmqctl.1.xml: Fix quoting of {encrypted, <<"...">>}Jean-Sébastien Pédron2017-06-291-3/+3
| | | | | | | | There was three single quotes, so one extra.
| * Revert unnecessary function additionLuke Bakken2017-07-051-6/+2
| |
| * Clean up queue metrics on queue termination.kjnilsson2017-07-044-21/+19
| | | | | | | | | | | | | | | | This change handles all non-crash termination cases. The assumption here is that once an amqqueue_process terminates the master is no longer on the current node. [#147753285]
| * Add list_local_names functionLuke Bakken2017-06-281-1/+6
| |
| * Only GC local queue metricsLuke Bakken2017-06-282-20/+2
| | | | | | | | | | Previously, GC would not clear out metrics for non-local queues, so stale data remained in the metrics tables.
| * Filter queue list by local pidLuke Bakken2017-06-282-2/+7
| |
| * Force some GCLuke Bakken2017-06-281-1/+14
| |
| * Add sleep to ensure sync_mirrors settlesLuke Bakken2017-06-281-7/+11
| |
| * Check rpc return valuesLuke Bakken2017-06-281-26/+37
| | | | | | | | Simplifies code formatting by using intermediate variables in test suite setup.