MQ内存消耗与积压分析


[root@iZ23nn1p4mjZ logs]# rabbitmqctl status
Status of node rabbit@iZ23nn1p4mjZ ...
[{pid,15425},
{running_applications,
[{rabbitmq_management,"RabbitMQ Management Console","3.5.6"},
{rabbitmq_management_agent,"RabbitMQ Management Agent","3.5.6"},
{rabbit,"RabbitMQ","3.5.6"},
{amqp_client,"RabbitMQ AMQP Client","3.5.6"},
{rabbitmq_web_dispatch,"RabbitMQ Web Dispatcher","3.5.6"},
{webmachine,"webmachine","1.10.3-rmq3.5.6-gite9359c7"},
{mochiweb,"MochiMedia Web Server","2.7.0-rmq3.5.6-git680dba8"},
{xmerl,"XML parser","1.3.9"},
{os_mon,"CPO CXC 138 46","2.4"},
{mnesia,"MNESIA CXC 138 12","4.13.2"},
{inets,"INETS CXC 138 49","6.1"},
{sasl,"SASL CXC 138 11","2.6.1"},
{stdlib,"ERTS CXC 138 10","2.7"},
{kernel,"ERTS CXC 138 10","4.1.1"}]},
{os,{unix,linux}},
{erlang_version,
"Erlang/OTP 18 [erts-7.2] [source-e6dd627] [64-bit] [smp:4:4] [async-threads:64] [hipe] [kernel-poll:true]\n"},
{memory,
[{total,658753984},
{connection_readers,59653208},
{connection_writers,5883032},
{connection_channels,16427472},
{connection_other,77342544},
{queue_procs,34311280},
{queue_slave_procs,0},
{plugins,1674624},
{other_proc,15139104},
{mnesia,2057392},
{mgmt_db,36575208},
{msg_index,5701536},
{other_ets,4435216},
{binary,359802776},
{code,20170175},
{atom,711569},
{other_system,18868848}]},
{alarms,[]},
{listeners,[{clustering,25672,"::"},{amqp,5672,"0.0.0.0"}]},
{vm_memory_high_watermark,0.4},
{vm_memory_limit,3301947801},
{disk_free_limit,50000000},
{disk_free,3977351168},
{file_descriptors,
[{total_limit,65435},
{total_used,2085},
{sockets_limit,58889},
{sockets_used,2082}]},
{processes,[{limit,1048576},{used,24844}]},
{run_queue,1},
{uptime,72713}]
可以发现,binary部分占用的内存特别多,这一部分主要是connection的消耗+一些额外小部分的元数据。每个连接占用的内存可通过/proc/sys/net/ipv4/tcp_rmem得到,例如:
[root@osm ~]# cat /proc/sys/net/ipv4/tcp_rmem
4096 87380 4194304
也可以通过rabbitmq.config配置的下列部分进行覆盖:
[{rabbit, [{tcp_listen_options, [binary,
{sndbuf, 1024},
{recbuf, 1024},
{buffer, 1024},
{packet, raw},
{reuseaddr, true},
{backlog, 128},
{nodelay, true},
{linger, {true, 0}},
{exit_on_close, false}]}]}]
=ERROR REPORT==== 8-Dec-2016::08:49:28 ===
closing AMQP connection <0.5859.3> (127.0.0.1:49265 -> 127.0.0.1:5672):
Missed heartbeats from client, timeout: 10s
=ERROR REPORT==== 8-Dec-2016::08:49:28 ===
closing AMQP connection <0.30760.2> (127.0.0.1:45547 -> 127.0.0.1:5672):
Missed heartbeats from client, timeout: 10s
=ERROR REPORT==== 8-Dec-2016::08:49:29 ===
closing AMQP connection <0.10927.3> (127.0.0.1:50608 -> 127.0.0.1:5672):
{handshake_timeout,frame_header}
=ERROR REPORT==== 8-Dec-2016::08:49:29 ===
closing AMQP connection <0.11271.3> (127.0.0.1:50720 -> 127.0.0.1:5672):
{handshake_timeout,frame_header}
=WARNING REPORT==== 8-Dec-2016::08:49:29 ===
closing AMQP connection <0.10548.3> (101.69.255.190:38261 -> 120.27.140.42:5672):
connection_closed_abruptly
=WARNING REPORT==== 8-Dec-2016::08:49:29 ===
closing AMQP connection <0.10559.3> (101.69.255.190:38262 -> 120.27.140.42:5672):
connection_closed_abruptly
=WARNING REPORT==== 8-Dec-2016::08:49:29 ===
closing AMQP connection <0.10581.3> (101.69.255.190:38264 -> 120.27.140.42cn:5672):
connection_closed_abruptly
https://www.rabbitmq.com/blog/2014/10/30/understanding-memory-use-with-rabbitmq-3-4/
MQ内存消耗与积压分析的更多相关文章
- sql server 性能调优之 逻辑内存消耗最大资源分析1 (自sqlserver服务启动以后)
一.概述 IO 内存是sql server最重要的资源,数据从磁盘加载到内存,再从内存中缓存,输出到应用端,在sql server 内存初探中有介绍.在明白了sqlserver内存原理后,就能更好的分 ...
- Redis内存——内存消耗(内存都去哪了?)
最新:Redis内存--三个重要的缓冲区 最新:Redis内存--内存消耗(内存都去哪了?) 最新:Redis持久化--如何选择合适的持久化方式 最新:Redis持久化--AOF日志 更多文章... ...
- redis内存消耗详解
Redis所有的数据都存在内存中,相对于廉价的硬盘,内存资源还是比较昂贵的,因此如何高效利用redis内存变得非常重要. 内存消耗分析 管理内存的原理和方法 内存优化技巧 一.内存消耗 理解redis ...
- 「Nosql」Redis小记-内存解析&内存消耗篇
*博客搬家:初版发布于 2017/08/12 18:32 原博客地址:https://my.oschina.net/sunqinwen/blog/1507171 Redis内存消耗分析 注:本文 ...
- Activity内部Handler引起内存泄露的原因分析
有时在Activity中使用Handler时会提示一个内存泄漏的警告,代码通常如下: public class MainActivity extends Activity { private Text ...
- 一文了解 Redis 内存监控和内存消耗
Redis 是一种内存数据库,将数据保存在内存中,读写效率要比传统的将数据保存在磁盘上的数据库要快很多.所以,监控 Redis 的内存消耗并了解 Redis 内存模型对高效并长期稳定使用 Redis ...
- 一个驱动导致的内存泄漏问题的分析过程(meminfo->pmap->slabtop->alloc_calls)
关键词:sqllite.meminfo.slabinfo.alloc_calls.nand.SUnreclaim等等. 下面记录一个由于驱动导致的内存泄漏问题分析过程. 首先介绍问题背景,在一款嵌入式 ...
- 使用ps、top、ps_mem命令找出Linux中的最大内存消耗过程
使用ps.top.ps_mem命令找出Linux中的最大内存消耗过程 2020-02-08 16:06:59作者:自力稿源:云网牛站 您可能已经看到Linux系统多次消耗过多的内存,如果是这种情况,那 ...
- 「Python实用秘技06」逐行监听Python程序的内存消耗
本文完整示例代码及文件已上传至我的Github仓库https://github.com/CNFeffery/PythonPracticalSkills 这是我的系列文章「Python实用秘技」的第6期 ...
随机推荐
- CodeForces - 768C Jon Snow and his Favourite Number 桶排
https://vjudge.net/problem/CodeForces-768C 题意:n个数,k次操作,x.每次操作先排序,再让奇数位置上的数据a[i]:=a[i] XOR x; k< ...
- CCCC 排座位 图着色问题
1排座位:https://www.patest.cn/contests/gplt/L2-010 2图着色问题 https://www.patest.cn/contests/gplt/L2-023 建图 ...
- Autoloading Classes
php.net Many developers writing object-oriented applications create one PHP source file per class de ...
- Thymeleaf模板引擎的初步使用
在springboot中,推荐使用的模板引擎是Thymeleaf模板引擎,它提供了完美的Spring MVC的支持.下面就简单的介绍一下Thymeleaf模板引擎的使用. 在controller层中, ...
- LoadRunner-关联(自动关联和手动关联)
使用LR录制脚本,新建课程:每次新建课程都会产生一个新的courseid和partid,直接使用录制的脚本执行是不行的.所以用到了关联. 注:关联分手动和自动关联,自动关联搜索出一些不必要关联的数据, ...
- 便于理解mysql内幕的各种逻辑图组
便于理解mysql内幕的各种逻辑图组 http://blog.sina.com.cn/s/blog_445e807b0101ggtl.html 以下是个人一直以来从网络等各种途径收集到的一些对理解my ...
- CSS 基础知识
CSS 实例(CSS声明总是以分号(;)结束,声明组以大括号({})括起来:) CSS 规则由两个主要的部分构成:选择器,以及一条或多条声明: 选择器通常是您需要改变样式的 HTML 元素. 每条声明 ...
- TCP/UDP client/server library for Java, 最好的java语言tcp udp 服务器客户端实现库
这个库andrdoi也可以用,而且是基于类的使用方式: 它支持类似聊天室的功能,即一个人说话,所有客户端都能收到,当然也支持点点通信.它还支持 RMI 的方式调用远程过程. https://githu ...
- Spark Storage(一) 集群下的区块管理
Storage模块 在Spark中提及最多的是RDD,而RDD所交互的数据是通过Storage来实现和管理 Storage模块整体架构 1. 存储层 在Spark里,单节点的Storage的管理是通过 ...
- CentOS6.7上安装Mysql5.7
CentOS6.7上安装Mysql5.7 2017年07月22日 18:27:05 阅读数:564 环境的配置总是令人作呕,所以这次表明版本条件: 首先,这是一台新机器 其次,CentOS版本如下: ...