RabbitMQ 内存控制 硬盘控制 您所在的位置:网站首页 zen内存控制器 RabbitMQ 内存控制 硬盘控制

RabbitMQ 内存控制 硬盘控制

2023-09-17 14:09| 来源: 网络整理| 查看: 265

一、内存控制:

vm_memory_high_watermark 该值为内存阈值,默认为0.4。意思为物理内存的40%。40%的内存并不是内存的最大的限制,它是一个发布的节制,当达到40%时Erlang会做GC。最坏的情况是使用内存80%。如果把该值配置为0,将关闭所有的publishing 。

rabbitmqctl set_vm_memory_high_watermark 0

Paging 内存阈值,该值为默认为0.5,该值为vm_memory_high_watermark的20%时,将把内存数据写到磁盘。

如机器内存16G,当RABBITMQ占用内存1.28G(16*0.4*0.2)时把内存数据放到磁盘。

二、硬盘控制:

当RabbitMQ的磁盘空闲空间小于50M(默认),生产者将被BLOCK,

如果采用集群模式,磁盘节点空闲空间小于50M将导致其他节点的生产者都被block

可以通过disk_free_limit来对进行配置。

------------------------------------------------------------------\

可以修改rabbitmq-env.conf配置文件:

[{rabbit,[{vm_memory_high_watermark,0.6}]}].

或者设置成固定值:

[{rabbit,[{vm_memory_high_watermark,{absolute,1073741824}}]}].也就是1024MB.

如果要在broker运行过程中修改,则rabbitmqctl set_vm_memory_high_watermark 0.6

-------------------------------------------------\

三. 配置

/usr/local/rabbitmq/sbin目录下

rabbitmq-env 环境配置

rabbitmq-defaults 默认参数设置

rabbitmqctl 管理工具

rabbitmq-plugins 插件管理工具

rabbitmq-server rabbitmq服务

# vim rabbitmq-defaults

1

2

3

4

5

6

7

8

9

10

SYS_PREFIX=${RABBITMQ_HOME}

ERL_DIR=/usr/local/erlang/bin/ //设置erl命令路径

CLEAN_BOOT_FILE=start_clean

SASL_BOOT_FILE=start_sasl

CONFIG_FILE=${SYS_PREFIX}/etc/rabbitmq/rabbitmq //设置rabbitmq运行参数

LOG_BASE=${SYS_PREFIX}/var/log/rabbitmq

MNESIA_BASE=${SYS_PREFIX}/var/lib/rabbitmq/mnesia

ENABLED_PLUGINS_FILE=${SYS_PREFIX}/etc/rabbitmq/enabled_plugins //允许插件列表配置文件

PLUGINS_DIR="${RABBITMQ_HOME}/plugins"

CONF_ENV_FILE=${SYS_PREFIX}/etc/rabbitmq/rabbitmq-env.conf

主要配置文件

1. enabled_plugins:设置允许的插件列表,格式如下:

1

2

3

4

5

[rabbitmq_jsonrpc_channel,

rabbitmq_jsonrpc_channel_examples,

rabbitmq_management,

rabbitmq_management_visualiser,

rabbitmq_tracing].

2. rabbitmq.config:设置rabbitmq运行参数。结构为hash数组格式。如

1

2

3

4

5

6

7

8

9

[

{mnesia, [{dump_log_write_threshold, 1000}]},

{rabbit, [{vm_memory_high_watermark, 0.4}]}

{rabbitmq_management,

[{listener, [{port, 55673},

{ip, "0.0.0.0"}

]}

]}

].

其中几个关键参数为:

tcp_listerners 设置rabbimq的监听端口,默认为[5672]。

disk_free_limit 磁盘低水位线,若磁盘容量低于指定值则停止接收数据,默认值为{mem_relative, 1.0},即与内存相关联1:1,也可定制为多少byte.

vm_memory_high_watermark,设置内存低水位线,若低于该水位线,则开启流控机制,默认值是0.4,即内存总量的40%。

hipe_compile 将部分rabbimq代码用High Performance Erlang compiler编译,可提升性能,该参数是实验性,若出现erlang vm segfaults,应关掉。

force_fine_statistics, 该参数属于rabbimq_management,若为true则进行精细化的统计,但会影响性能。

/usr/local/etc/rabbitmq/rabbitmq.config

[{auth_backends,[rabbit_auth_backend_internal]},

{auth_mechanisms,['PLAIN','AMQPLAIN']},

{backing_queue_module,rabbit_variable_queue},

{cluster_nodes,[]},

{collect_statistics,fine},

{collect_statistics_interval,5000},

{default_permissions,[,,]},

{default_user,},

{default_user_tags,[administrator]},

{default_vhost,},

{delegate_count,16},

{error_logger,{file,"/usr/local/var/log/rabbitmq/[email protected]"}},

{frame_max,131072},

{hipe_compile,false},

{included_applications,[]},

{msg_store_file_size_limit,16777216},

{msg_store_index_module,rabbit_msg_store_ets_index},

{queue_index_max_journal_entries,262144},

{sasl_error_logger,{file,"/usr/local/var/log/rabbitmq/[email protected]"}},

{server_properties,[]},

{ssl_listeners,[]},

{ssl_options,[]},

{tcp_listen_options,

[binary,

{packet,raw},

{reuseaddr,true},

{backlog,128},

{nodelay,true},

{exit_on_close,false}]},

{tcp_listeners,[5672]},

{trace_vhosts,[]},

{vm_memory_high_watermark,0.4}]

3. rabbitmq-env.conf rabbitmq环境参数配置

1

2

3

4

5

6

RABBITMQ_NODENAME=FZTEC-240088 节点名称

RABBITMQ_NODE_IP_ADDRESS=127.0.0.1 监听IP

RABBITMQ_NODE_PORT=5672 监听端口

RABBITMQ_LOG_BASE=/data/rabbitmq/log 日志目录

RABBITMQ_PLUGINS_DIR=/data/rabbitmq/plugins 插件目录

RABBITMQ_MNESIA_BASE=/data/rabbitmq/mnesia 后端存储目录

更详细的配置参见: http://www.rabbitmq.com/configure.html#configuration-file

4. 启动

1

# /usr/local/rabbitmq/sbin/rabbitmq-server -detached

四. rabbitmq插件管理

启用rabbitmq web管理插件

1

# ./rabbitmq-plugins enable rabbitmq_management

列出所有插件

1

# ./rabbitmq-plugins list



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有