[rabbitmq-discuss] RabbitMQ 2.6.1 is unexpectedly eating up memory

Simon MacMullen simon at rabbitmq.com
Thu Mar 8 16:44:08 GMT 2012


Hi Ingo, thanks for this.

It looks like your Rabbit is somewhat overloaded. When some parts of the 
broker (e.g. channels or queues) can't keep up, messages can build up 
waiting to get into them - potentially in an unbounded way, sending 
memory use very high.

The good news is the next release (2.8.0, available very soon I hope) 
will contain an internal flow control mechanism to bound the amount of 
memory that can be used when this happens.

Cheers, Simon

On 07/03/12 14:26, ingo schramm wrote:
> Today it happened again. When Rabbit had about 13G RAM usage on one node
> (<1G is the usual number), I connected to the node and got some infos. I
> post these below. Unfortunately, I cannot see that much in the data
> since I do not know what the processes are doing exactly inside Rabbit.
>
> After a while the system seemed to recover but irritated clients started
> to connect in an unusual pattern and then - almost immediately - the RAM
> usage executed a Big Bang, up to 55G allocated, the machine began to
> swap ...
>
> Here is the dump of the 10 most memory consuming processes.
>
> (ram2 at tarazed)4> erlang:memory().
> [{total,14709955672},
> {processes,9701451024},
> {processes_used,9685449080},
> {system,5008504648},
> {atom,1318801},
> {atom_used,1286285},
> {binary,4901053992},
> {code,15227889},
> {ets,23180616}]
>
> [{{memory,1868315056},
> <0.21462.60>,
> [{current_function,{erl_eval,do_apply,5}},
> {initial_call,{erlang,apply,2}},
> {status,running},
> {message_queue_len,0},
> {messages,[]},
> {links,[<0.21461.60>]},
> {dictionary,[]},
> {trap_exit,false},
> {error_handler,error_handler},
> {priority,normal},
> {group_leader,<18922.32.0>},
> {total_heap_size,233539280},
> {heap_size,116769640},
> {stack_size,88},
> {reductions,8019756},
> {garbage_collection,[{fullsweep_after,65535},{minor_gcs,1}]},
> {suspending,[]}]},
> {{memory,1826853040},
> <0.252.0>,
> [{current_function,{gen,wait_resp_mon,3}},
> {initial_call,{proc_lib,init_p,5}},
> {status,waiting},
> {message_queue_len,3},
> {messages,[{'$gen_cast',{notify_sent,<0.26233.60>}},
> {'$gen_cast',{ack,[128755027],<0.22877.60>}},
> {'$gen_cast',{unblock,<0.22877.60>}}]},
> {links,[#Port<0.162932>,<0.250.0>,#Port<0.4466>]},
> {dictionary,[{{ch,<0.30314.59>},
> {cr,1,<0.30314.59>,
> {token,<0.30313.59>,true},
> #Ref<0.0.913.261747>,
> {set,1,16,16,8,80,...},
> true,1}},
> {{ch,<0.11679.60>},
> {cr,1,<0.11679.60>,
> {token,<0.11678.60>,true},
> #Ref<0.0.916.161564>,
> {set,1,16,16,8,...},
> true,0}},
> {{ch,<0.29890.59>},
> {cr,1,<0.29890.59>,
> {token,<0.29889.59>,true},
> #Ref<0.0.913.256520>,
> {set,1,16,16,...},
> true,1}},
> {{ch,<0.24130.59>},
> {cr,1,<0.24130.59>,
> {token,<0.24129.59>,true},
> #Ref<0.0.912.149255>,
> {set,1,16,...},
> true,1}},
> {{ch,<0.21656.59>},
> {cr,1,<0.21656.59>,
> {token,<0.21655.59>,true},
> #Ref<0.0.911.188523>,
> {set,1,...},
> true,1}},
> {{ch,<0.15601.60>},
> {cr,1,<0.15601.60>,
> {token,<0.15600.60>,true},
> #Ref<0.0.917.100808>,
> {set,...},
> true,...}},
> {{ch,<15215.21015.63>},
> {cr,1,<15215.21015.63>,
> {token,<15215.21014.63>,...},
> #Ref<0.0.815.242631>,{...},...}},
> {{ch,<0.21015.12>},
> {cr,1,<0.21015.12>,{token,...},#Ref<0.0.295.125075>,...}},
> {{ch,<0.17432.59>},{cr,1,<0.17432.59>,{...},...}},
> {{ch,<0.9598.46>},{cr,1,<0.9598.46>,...}},
> {{ch,<15215.20479.63>},{cr,1,...}},
> {{ch,<0.24362.59>},{cr,...}},
> {{ch,...},{...}},
> {{...},...},
> {...}|...]},
> {trap_exit,true},
> {error_handler,error_handler},
> {priority,normal},
> {group_leader,<0.108.0>},
> {total_heap_size,228065700},
> {heap_size,228065700},
> {stack_size,48},
> {reductions,86360443586},
> {garbage_collection,[{fullsweep_after,65535},{minor_gcs,0}]},
> {suspending,[]}]},
> {{memory,544009512},
> <0.218.0>,
> [{registered_name,delegate_11},
> {current_function,{gen,wait_resp_mon,3}},
> {initial_call,{proc_lib,init_p,5}},
> {status,waiting},
> {message_queue_len,45210},
> {messages,[{'$gen_cast',{invoke,#Fun<rabbit_router.0.66097277>,
> [{ram2 at tarazed,[<0.252.0>]}]}},
> {'$gen_cast',{invoke,#Fun<rabbit_router.0.66097277>,
> [{ram2 at tarazed,[<0.252.0>]}]}},
> {'$gen_cast',{invoke,#Fun<rabbit_router.0.66097277>,
> [{ram2 at tarazed,[<0.252.0>]}]}},
> {'$gen_cast',{invoke,#Fun<rabbit_router.0.66097277>,
> [{ram2 at tarazed,[<0.252.0>]}]}},
> {'$gen_cast',{invoke,#Fun<rabbit_router.0.66097277>,
> [{ram2 at tarazed,[<0.252.0>]}]}},
> {'$gen_cast',{invoke,#Fun<rabbit_router.0.66097277>,
> [{ram2 at tarazed,[<0.252.0>]}]}},
> {'$gen_cast',{invoke,#Fun<rabbit_router.0.66097277>,
> [{ram2 at tarazed,[...]}]}},
> {'$gen_cast',{invoke,#Fun<rabbit_router.0.66097277>,
> [{ram2 at tarazed,...}]}},
> {'$gen_cast',{invoke,#Fun<rabbit_router.0.66097277>,
> [{...}]}},
> {'$gen_cast',{invoke,#Fun<rabbit_router.0.66097277>,[...]}},
> {'$gen_cast',{invoke,#Fun<rabbit_router.0.66097277>,...}},
> {'$gen_cast',{invoke,...}},
> {'$gen_cast',{...}},
> {'$gen_cast',...},
> {...}|...]},
> {links,[<0.206.0>]},
> {dictionary,[{'$ancestors',[delegate_sup,rabbit_sup,
> <0.109.0>]},
> {'$initial_call',{gen,init_it,7}}]},
> {trap_exit,false},
> {error_handler,error_handler},
> {priority,normal},
> {group_leader,<0.108.0>},
> {total_heap_size,67810415},
> {heap_size,8024355},
> {stack_size,32},
> {reductions,536435169},
> {garbage_collection,[{fullsweep_after,65535},{minor_gcs,1}]},
> {suspending,[]}]},
> {{memory,544003272},
> <0.213.0>,
> [{registered_name,delegate_6},
> {current_function,{gen,wait_resp_mon,3}},
> {initial_call,{proc_lib,init_p,5}},
> {status,waiting},
> {message_queue_len,45000},
> {messages,[{'$gen_cast',{invoke,#Fun<rabbit_router.0.66097277>,
> [{ram2 at tarazed,[<0.252.0>]}]}},
> {'$gen_cast',{invoke,#Fun<rabbit_router.0.66097277>,
> [{ram2 at tarazed,[<0.252.0>]}]}},
> {'$gen_cast',{invoke,#Fun<rabbit_router.0.66097277>,
> [{ram2 at tarazed,[<0.252.0>]}]}},
> {'$gen_cast',{invoke,#Fun<rabbit_router.0.66097277>,
> [{ram2 at tarazed,[<0.252.0>]}]}},
> {'$gen_cast',{invoke,#Fun<rabbit_router.0.66097277>,
> [{ram2 at tarazed,[<0.252.0>]}]}},
> {'$gen_cast',{invoke,#Fun<rabbit_router.0.66097277>,
> [{ram2 at tarazed,[...]}]}},
> {'$gen_cast',{invoke,#Fun<rabbit_router.0.66097277>,
> [{ram2 at tarazed,...}]}},
> {'$gen_call',{<15215.4753.67>,
> {#Ref<15215.0.573.141891>,ram2 at tarazed}},
> {invoke,#Fun<rabbit_amqqueue.22.114209891>,[...]}},
> {'$gen_cast',{invoke,#Fun<rabbit_router.0.66097277>,[...]}},
> {'$gen_cast',{invoke,#Fun<rabbit_router.0.66097277>,...}},
> {'$gen_cast',{invoke,...}},
> {'$gen_cast',{...}},
> {'$gen_cast',...},
> {...}|...]},
> {links,[<0.206.0>]},
> {dictionary,[{'$ancestors',[delegate_sup,rabbit_sup,
> <0.109.0>]},
> {'$initial_call',{gen,init_it,7}}]},
> {trap_exit,false},
> {error_handler,error_handler},
> {priority,normal},
> {group_leader,<0.108.0>},
> {total_heap_size,67810415},
> {heap_size,8024355},
> {stack_size,32},
> {reductions,492300563},
> {garbage_collection,[{fullsweep_after,65535},
> {minor_gcs,...}]},
> {suspending,[]}]},
> {{memory,543937016},
> <0.220.0>,
> [{registered_name,delegate_13},
> {current_function,{gen,wait_resp_mon,3}},
> {initial_call,{proc_lib,init_p,5}},
> {status,waiting},
> {message_queue_len,43117},
> {messages,[{'$gen_cast',{invoke,#Fun<rabbit_router.0.66097277>,
> [{ram2 at tarazed,[<0.252.0>]}]}},
> {'$gen_cast',{invoke,#Fun<rabbit_router.0.66097277>,
> [{ram2 at tarazed,[<0.252.0>]}]}},
> {'$gen_cast',{invoke,#Fun<rabbit_router.0.66097277>,
> [{ram2 at tarazed,[<0.252.0>]}]}},
> {'$gen_cast',{invoke,#Fun<rabbit_router.0.66097277>,
> [{ram2 at tarazed,[<0.252.0>]}]}},
> {'$gen_cast',{invoke,#Fun<rabbit_router.0.66097277>,
> [{ram2 at tarazed,[...]}]}},
> {'$gen_cast',{invoke,#Fun<rabbit_router.0.66097277>,
> [{ram2 at tarazed,...}]}},
> {'$gen_cast',{invoke,#Fun<rabbit_router.0.66097277>,
> [{...}]}},
> {'$gen_cast',{invoke,#Fun<rabbit_router.0.66097277>,[...]}},
> {'$gen_cast',{invoke,#Fun<rabbit_router.0.66097277>,...}},
> {'$gen_cast',{invoke,...}},
> {'$gen_cast',{...}},
> {'$gen_cast',...},
> {...}|...]},
> {links,[<0.206.0>]},
> {dictionary,[{'$ancestors',[delegate_sup,rabbit_sup,
> <0.109.0>]},
> {'$initial_call',{gen,init_it,7}}]},
> {trap_exit,false},
> {error_handler,error_handler},
> {priority,normal},
> {group_leader,<0.108.0>},
> {total_heap_size,67810415},
> {heap_size,8024355},
> {stack_size,32},
> {reductions,516829717},
> {garbage_collection,[{fullsweep_after,...},{...}]},
> {suspending,[]}]},
> {{memory,509272344},
> <0.208.0>,
> [{registered_name,delegate_1},
> {current_function,{gen,wait_resp_mon,3}},
> {initial_call,{proc_lib,init_p,5}},
> {status,waiting},
> {message_queue_len,36921},
> {messages,[{'$gen_cast',{invoke,#Fun<rabbit_amqqueue.23.2473037>,
> [{ram2 at tarazed,[<0.252.0>]}]}},
> {'$gen_cast',{invoke,#Fun<rabbit_router.0.66097277>,
> [{ram2 at tarazed,[<0.252.0>]}]}},
> {'$gen_cast',{invoke,#Fun<rabbit_router.0.66097277>,
> [{ram2 at tarazed,[<0.252.0>]}]}},
> {'$gen_cast',{invoke,#Fun<rabbit_router.0.66097277>,
> [{ram2 at tarazed,[...]}]}},
> {'$gen_cast',{invoke,#Fun<rabbit_router.0.66097277>,
> [{ram2 at tarazed,...}]}},
> {'$gen_cast',{invoke,#Fun<rabbit_router.0.66097277>,
> [{...}]}},
> {'$gen_cast',{invoke,#Fun<rabbit_router.0.66097277>,[...]}},
> {'$gen_cast',{invoke,#Fun<rabbit_router.0.66097277>,...}},
> {'$gen_cast',{invoke,...}},
> {'$gen_cast',{...}},
> {'$gen_cast',...},
> {...}|...]},
> {links,[<0.206.0>]},
> {dictionary,[{'$ancestors',[delegate_sup,rabbit_sup,
> <0.109.0>]},
> {'$initial_call',{gen,init_it,7}}]},
> {trap_exit,false},
> {error_handler,error_handler},
> {priority,normal},
> {group_leader,<0.108.0>},
> {total_heap_size,63501410},
> {heap_size,15672560},
> {stack_size,32},
> {reductions,481258527},
> {garbage_collection,[{...}|...]},
> {suspending,[]}]},
> {{memory,484092056},
> <0.209.0>,
> [{registered_name,delegate_2},
> {current_function,{gen,wait_resp_mon,3}},
> {initial_call,{proc_lib,init_p,5}},
> {status,waiting},
> {message_queue_len,33987},
> {messages,[{'$gen_cast',{invoke,#Fun<rabbit_router.0.66097277>,
> [{ram2 at tarazed,[<0.252.0>]}]}},
> {'$gen_cast',{invoke,#Fun<rabbit_router.0.66097277>,
> [{ram2 at tarazed,[<0.252.0>]}]}},
> {'$gen_cast',{invoke,#Fun<rabbit_router.0.66097277>,
> [{ram2 at tarazed,[...]}]}},
> {'$gen_cast',{invoke,#Fun<rabbit_router.0.66097277>,
> [{ram2 at tarazed,...}]}},
> {'$gen_cast',{invoke,#Fun<rabbit_router.0.66097277>,
> [{...}]}},
> {'$gen_cast',{invoke,#Fun<rabbit_router.0.66097277>,[...]}},
> {'$gen_cast',{invoke,#Fun<rabbit_router.0.66097277>,...}},
> {'$gen_cast',{invoke,...}},
> {'$gen_cast',{...}},
> {'$gen_cast',...},
> {...}|...]},
> {links,[<0.206.0>]},
> {dictionary,[{'$ancestors',[delegate_sup,rabbit_sup,
> <0.109.0>]},
> {'$initial_call',{gen,init_it,7}}]},
> {trap_exit,false},
> {error_handler,error_handler},
> {priority,normal},
> {group_leader,<0.108.0>},
> {total_heap_size,60366900},
> {heap_size,12538050},
> {stack_size,32},
> {reductions,439896730},
> {garbage_collection,[...]},
> {suspending,...}]},
> {{memory,383857832},
> <0.207.0>,
> [{registered_name,delegate_0},
> {current_function,{gen,wait_resp_mon,3}},
> {initial_call,{proc_lib,init_p,5}},
> {status,waiting},
> {message_queue_len,36015},
> {messages,[{'$gen_cast',{invoke,#Fun<rabbit_router.0.66097277>,
> [{ram2 at tarazed,[<0.252.0>]}]}},
> {'$gen_cast',{invoke,#Fun<rabbit_router.0.66097277>,
> [{ram2 at tarazed,[...]}]}},
> {'$gen_cast',{invoke,#Fun<rabbit_router.0.66097277>,
> [{ram2 at tarazed,...}]}},
> {'$gen_cast',{invoke,#Fun<rabbit_router.0.66097277>,
> [{...}]}},
> {'$gen_cast',{invoke,#Fun<rabbit_router.0.66097277>,[...]}},
> {'$gen_cast',{invoke,#Fun<rabbit_router.0.66097277>,...}},
> {'$gen_cast',{invoke,...}},
> {'$gen_cast',{...}},
> {'$gen_cast',...},
> {...}|...]},
> {links,[<0.206.0>]},
> {dictionary,[{'$ancestors',[delegate_sup,rabbit_sup,
> <0.109.0>]},
> {'$initial_call',{gen,init_it,7}}]},
> {trap_exit,false},
> {error_handler,error_handler},
> {priority,normal},
> {group_leader,<0.108.0>},
> {total_heap_size,47828850},
> {heap_size,47828850},
> {stack_size,32},
> {reductions,464166560},
> {garbage_collection,...},
> {...}]},
> {{memory,322186712},
> <0.214.0>,
> [{registered_name,delegate_7},
> {current_function,{gen,wait_resp_mon,3}},
> {initial_call,{proc_lib,init_p,5}},
> {status,waiting},
> {message_queue_len,25955},
> {messages,[{'$gen_cast',{invoke,#Fun<rabbit_router.0.66097277>,
> [{ram2 at tarazed,[...]}]}},
> {'$gen_cast',{invoke,#Fun<rabbit_router.0.66097277>,
> [{ram2 at tarazed,...}]}},
> {'$gen_cast',{invoke,#Fun<rabbit_router.0.66097277>,
> [{...}]}},
> {'$gen_cast',{invoke,#Fun<rabbit_router.0.66097277>,[...]}},
> {'$gen_cast',{invoke,#Fun<rabbit_router.0.66097277>,...}},
> {'$gen_cast',{invoke,...}},
> {'$gen_cast',{...}},
> {'$gen_cast',...},
> {...}|...]},
> {links,[<0.206.0>]},
> {dictionary,[{'$ancestors',[delegate_sup,rabbit_sup,
> <0.109.0>]},
> {'$initial_call',{gen,init_it,7}}]},
> {trap_exit,false},
> {error_handler,error_handler},
> {priority,normal},
> {group_leader,<0.108.0>},
> {total_heap_size,40160935},
> {heap_size,15672560},
> {stack_size,32},
> {reductions,...},
> {...}|...]},
> {{memory,245833600},
> <0.212.0>,
> [{registered_name,delegate_5},
> {current_function,{gen,wait_resp_mon,3}},
> {initial_call,{proc_lib,init_p,5}},
> {status,waiting},
> {message_queue_len,27354},
> {messages,[{'$gen_cast',{invoke,#Fun<rabbit_router.0.66097277>,
> [{ram2 at tarazed,...}]}},
> {'$gen_cast',{invoke,#Fun<rabbit_router.0.66097277>,
> [{...}]}},
> {'$gen_cast',{invoke,#Fun<rabbit_router.0.66097277>,[...]}},
> {'$gen_cast',{invoke,#Fun<rabbit_router.0.66097277>,...}},
> {'$gen_cast',{invoke,...}},
> {'$gen_cast',{...}},
> {'$gen_cast',...},
> {...}|...]},
> {links,[<0.206.0>]},
> {dictionary,[{'$ancestors',[delegate_sup,rabbit_sup,
> <0.109.0>]},
> {'$initial_call',{gen,init_it,...}}]},
> {trap_exit,false},
> {error_handler,error_handler},
> {priority,normal},
> {group_leader,<0.108.0>},
> {total_heap_size,30610465},
> {heap_size,30610465},
> {stack_size,...},
> {...}|...]}]
>
>
> Am Dienstag, 6. März 2012 13:15:41 UTC+1 schrieb Simon MacMullen:
>
>     On 06/03/12 11:38, ingo schramm wrote:
>      > I do *not* use a mirrored queue :)
>
>     Ah, right, that's how I read "queues distributed over all nodes".
>
>     Hmm. It's still easier to figure out the memory use of RabbitMQ on
>     2.7.1, but for 2.6.1 you could check per-queue memory use with
>     "rabbitmqctl list_queues name memory" (or look in mgmt). If this
>     doesn't
>     bring anything useful up then:
>
>     * Become the user the broker is running as
>     * Run "erl -sname foo -remsh rabbit@$(hostname -s)" to get a shell into
>     the running broker
>     * Invoke "erlang:memory()." for an overview of memory use in the VM.
>     * Invoke "lists:sublist(lists:reverse(lists:sort([{process_info(Pid,
>     memory), Pid, process_info(Pid)} || Pid <- processes()])), 10)." for a
>     lit of the top 10 memory using processes, and some information on
>     each one.
>
>     Cheers, Simon
>
>     --
>     Simon MacMullen
>     RabbitMQ, VMware
>     _______________________________________________
>     rabbitmq-discuss mailing list
>     rabbitmq-discuss at lists.rabbitmq.com
>     <mailto:rabbitmq-discuss at lists.rabbitmq.com>
>     https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss
>     <https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss>
>
>
> Am Dienstag, 6. März 2012 13:15:41 UTC+1 schrieb Simon MacMullen:
>
>     On 06/03/12 11:38, ingo schramm wrote:
>      > I do *not* use a mirrored queue :)
>
>     Ah, right, that's how I read "queues distributed over all nodes".
>
>     Hmm. It's still easier to figure out the memory use of RabbitMQ on
>     2.7.1, but for 2.6.1 you could check per-queue memory use with
>     "rabbitmqctl list_queues name memory" (or look in mgmt). If this
>     doesn't
>     bring anything useful up then:
>
>     * Become the user the broker is running as
>     * Run "erl -sname foo -remsh rabbit@$(hostname -s)" to get a shell into
>     the running broker
>     * Invoke "erlang:memory()." for an overview of memory use in the VM.
>     * Invoke "lists:sublist(lists:reverse(lists:sort([{process_info(Pid,
>     memory), Pid, process_info(Pid)} || Pid <- processes()])), 10)." for a
>     lit of the top 10 memory using processes, and some information on
>     each one.
>
>     Cheers, Simon
>
>     --
>     Simon MacMullen
>     RabbitMQ, VMware
>     _______________________________________________
>     rabbitmq-discuss mailing list
>     rabbitmq-discuss at lists.rabbitmq.com
>     <mailto:rabbitmq-discuss at lists.rabbitmq.com>
>     https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss
>     <https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss>
>
>
> Am Dienstag, 6. März 2012 13:15:41 UTC+1 schrieb Simon MacMullen:
>
>     On 06/03/12 11:38, ingo schramm wrote:
>      > I do *not* use a mirrored queue :)
>
>     Ah, right, that's how I read "queues distributed over all nodes".
>
>     Hmm. It's still easier to figure out the memory use of RabbitMQ on
>     2.7.1, but for 2.6.1 you could check per-queue memory use with
>     "rabbitmqctl list_queues name memory" (or look in mgmt). If this
>     doesn't
>     bring anything useful up then:
>
>     * Become the user the broker is running as
>     * Run "erl -sname foo -remsh rabbit@$(hostname -s)" to get a shell into
>     the running broker
>     * Invoke "erlang:memory()." for an overview of memory use in the VM.
>     * Invoke "lists:sublist(lists:reverse(lists:sort([{process_info(Pid,
>     memory), Pid, process_info(Pid)} || Pid <- processes()])), 10)." for a
>     lit of the top 10 memory using processes, and some information on
>     each one.
>
>     Cheers, Simon
>
>     --
>     Simon MacMullen
>     RabbitMQ, VMware
>     _______________________________________________
>     rabbitmq-discuss mailing list
>     rabbitmq-discuss at lists.rabbitmq.com
>     <mailto:rabbitmq-discuss at lists.rabbitmq.com>
>     https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss
>     <https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss>
>
>
> Am Dienstag, 6. März 2012 13:15:41 UTC+1 schrieb Simon MacMullen:
>
>     On 06/03/12 11:38, ingo schramm wrote:
>      > I do *not* use a mirrored queue :)
>
>     Ah, right, that's how I read "queues distributed over all nodes".
>
>     Hmm. It's still easier to figure out the memory use of RabbitMQ on
>     2.7.1, but for 2.6.1 you could check per-queue memory use with
>     "rabbitmqctl list_queues name memory" (or look in mgmt). If this
>     doesn't
>     bring anything useful up then:
>
>     * Become the user the broker is running as
>     * Run "erl -sname foo -remsh rabbit@$(hostname -s)" to get a shell into
>     the running broker
>     * Invoke "erlang:memory()." for an overview of memory use in the VM.
>     * Invoke "lists:sublist(lists:reverse(lists:sort([{process_info(Pid,
>     memory), Pid, process_info(Pid)} || Pid <- processes()])), 10)." for a
>     lit of the top 10 memory using processes, and some information on
>     each one.
>
>     Cheers, Simon
>
>     --
>     Simon MacMullen
>     RabbitMQ, VMware
>     _______________________________________________
>     rabbitmq-discuss mailing list
>     rabbitmq-discuss at lists.rabbitmq.com
>     <mailto:rabbitmq-discuss at lists.rabbitmq.com>
>     https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss
>     <https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss>
>
>
> Am Dienstag, 6. März 2012 13:15:41 UTC+1 schrieb Simon MacMullen:
>
>     On 06/03/12 11:38, ingo schramm wrote:
>      > I do *not* use a mirrored queue :)
>
>     Ah, right, that's how I read "queues distributed over all nodes".
>
>     Hmm. It's still easier to figure out the memory use of RabbitMQ on
>     2.7.1, but for 2.6.1 you could check per-queue memory use with
>     "rabbitmqctl list_queues name memory" (or look in mgmt). If this
>     doesn't
>     bring anything useful up then:
>
>     * Become the user the broker is running as
>     * Run "erl -sname foo -remsh rabbit@$(hostname -s)" to get a shell into
>     the running broker
>     * Invoke "erlang:memory()." for an overview of memory use in the VM.
>     * Invoke "lists:sublist(lists:reverse(lists:sort([{process_info(Pid,
>     memory), Pid, process_info(Pid)} || Pid <- processes()])), 10)." for a
>     lit of the top 10 memory using processes, and some information on
>     each one.
>
>     Cheers, Simon
>
>     --
>     Simon MacMullen
>     RabbitMQ, VMware
>     _______________________________________________
>     rabbitmq-discuss mailing list
>     rabbitmq-discuss at lists.rabbitmq.com
>     <mailto:rabbitmq-discuss at lists.rabbitmq.com>
>     https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss
>     <https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss>
>
>
> Am Dienstag, 6. März 2012 13:15:41 UTC+1 schrieb Simon MacMullen:
>
>     On 06/03/12 11:38, ingo schramm wrote:
>      > I do *not* use a mirrored queue :)
>
>     Ah, right, that's how I read "queues distributed over all nodes".
>
>     Hmm. It's still easier to figure out the memory use of RabbitMQ on
>     2.7.1, but for 2.6.1 you could check per-queue memory use with
>     "rabbitmqctl list_queues name memory" (or look in mgmt). If this
>     doesn't
>     bring anything useful up then:
>
>     * Become the user the broker is running as
>     * Run "erl -sname foo -remsh rabbit@$(hostname -s)" to get a shell into
>     the running broker
>     * Invoke "erlang:memory()." for an overview of memory use in the VM.
>     * Invoke "lists:sublist(lists:reverse(lists:sort([{process_info(Pid,
>     memory), Pid, process_info(Pid)} || Pid <- processes()])), 10)." for a
>     lit of the top 10 memory using processes, and some information on
>     each one.
>
>     Cheers, Simon
>
>     --
>     Simon MacMullen
>     RabbitMQ, VMware
>     _______________________________________________
>     rabbitmq-discuss mailing list
>     rabbitmq-discuss at lists.rabbitmq.com
>     <mailto:rabbitmq-discuss at lists.rabbitmq.com>
>     https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss
>     <https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss>
>
>
>
> _______________________________________________
> rabbitmq-discuss mailing list
> rabbitmq-discuss at lists.rabbitmq.com
> https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss


-- 
Simon MacMullen
RabbitMQ, VMware


More information about the rabbitmq-discuss mailing list