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期 ...
随机推荐
- PyQT5初学(一)
PyQt5 是Digia的一套Qt5与python绑定的应用框架,同时支持2.x和3.x.本教程使用的是3.x.Qt库由Riverbank Computing开发,是最强大的GUI库之一 ,官方网站: ...
- Oracle中的时间函数用法(to_date、to_char) (总结)
一.24小时的形式显示出来要用HH24 select to_char(sysdate,'yyyy-MM-dd HH24:mi:ss') from dual; select to_date('2005- ...
- ios-CoreLocation定位服务
一.简单说明 1.CLLocationManager CLLocationManager的常用操作和属性 开始用户定位- (void)startUpdatingLocation; 停止用户定位- (v ...
- 2018/03/08 每日一学PHP 之 常量defind 和 const区别
常量defind 和 const区别 什么是常量? 如字面理解的,在脚本执行期间不可改变的的量. 定义一个常量应该注意的事项? 1:常量默认大小写敏感,错误的大小写不会被识别为常量. 2:常量只能是标 ...
- java获取系统当前服务器IP地址
public String getServiceIp(){ InetAddress address; String myIp; try { address = InetAddress.getLocal ...
- .NET Core 2.0 官方下载地址及中文教程
开发.net core 应用需要安装.NET Core 2.0 SDK http://www.microsoft.com/net/download/core#/sdk 电脑上运行 .net core ...
- React Native开发之IDE(Atom+Nuclide)安装,运行,调试
版权声明:本文为博主原创文章,如需转载请注明出处 目录(?)[-] 前言 MacWindowsLinux 准备工作 安装Atom 安装Nuclide 新建一个工程 自动补全 类型标注 语法检查 跳 ...
- [py]requests+json模块处理api数据,flask前台展示
需要处理接口json数据,过滤字段,处理字段等. 一大波json数据来了 参考: https://stedolan.github.io/jq/tutorial/ https://api.github. ...
- 四、Mosquitto 高级应用之用户配置
本文将讲解 Mosquitto 用户机制.如果还没有搭建 Mosquitto 服务的可以参考我的另外两篇文章<< 一.Mosquitto 介绍&安装>> << ...
- [PAT]A+B Format[简单]
1001 A+B Format (20)(20 分) Calculate a + b and output the sum in standard format -- that is, the dig ...