rabbitmq binary/other_system内存占用很高
最近有台服务器的MQ应用占用内存比较偏高,如下:

但是看控制台本身内存中消息积压并不多,

查看rabbtmqctl发现,binary data和other data占据了绝大部分的内存,如下:
{memory,
[{total,124441400},
{connection_readers,5548680},
{connection_writers,605560},
{connection_channels,2798608},
{connection_other,7775480},
{queue_procs,23561696},
{queue_slave_procs,0},
{plugins,489128},
{other_proc,14147408},
{mnesia,2040288},
{mgmt_db,9741144},
{msg_index,1946696},
{other_ets,2006528},
}]},
binary(Memory used by shared binary data in the Erlang VM. In-memory message bodies show up here.)代表的是内存中的消息以及其他一些被queue或者exchange引用的元数据,但是在控制台里面有没有任何体现。
other_system:
Other memory used by Erlang. One contributor to this value is the number of available file descriptors。
看mq日志,发现服务器负载高导致响应慢或者OOM被killed之后,虽然进程本身还在,但收不到有些客户端的心跳,类似如下:
Missed heartbeats from client, timeout: 10s
Missed heartbeats from client, timeout: 10s
Missed heartbeats from client, timeout: 10s
Missed heartbeats from client, timeout: 10s
Missed heartbeats from client, timeout: 10s
跟应用的原开发者确认了下,有些客户端在异常后会不断的尝试重新连接MQ服务器,但是连接都建立了,但是随后心跳就异常了。
照理来说,MQ强制断开客户端连接后,相关的socket和内存占用会随之释放,但是出现异常的时候内存占用一直都很高、而且一两个小时后也没有下降到正常水平。
重启两个java应用后,MQ内存占用就立刻下来了,但是连接数和消费者数量和原来都一样。
这现象似乎和我们原来mysql出现的异常一样,服务端在某些地方可能存在非最常用特性被极为频繁的使用后,可能导致内存存在泄露的情况。
因为之前出现过两三次行情初始化和成交回报丢失的情况,所以趁着这次测试环境的异常大概找到了出现问题的规律,后续会在深入研究下rabbitMQ的binary和other_system里面到底是什么数据,这就又涉及到要分析erlang VM的内存dump才能精确确定了。
rabbitmq binary/other_system内存占用很高的更多相关文章
- Window下MySql 5.6 安装后内存占用很高的问题
Window下MySql 5.6 安装后内存占用很高的问题 刚刚准备玩一把mysql,初学者 环境是window 7和window sever 2008, mysql是最新的5.6, 发现的问题是安装 ...
- CLR Profile解决内存占用过高
CLR Profile解决内存占用过高的问题 炮哥:"嘿,哥们,忙啥呢,电脑卡成这逼样." 勇哥:"在用CLR Profile工具分析下FlexiPrint的内存占用情况 ...
- [2017-08-09]一则使用WinDbg工具调试iis进程调查内存占用过高的案例
最近遇到一个奇葩内存问题,跟了三四天,把Windbg玩熟了,所以打算分享下. 症状简介 我们团队的DEV开发环境只有一台4核16G的win2012r2. 这台服务器上装了SqlServer.TFS(项 ...
- 【转】一则使用WinDbg工具调试iis进程调查内存占用过高的案例
最近遇到一个奇葩内存问题,跟了三四天,把Windbg玩熟了,所以打算分享下. 症状简介 我们团队的DEV开发环境只有一台4核16G的win2012r2.这台服务器上装了SqlServer.TFS(项目 ...
- Spring cloud开发内存占用过高解决方法
https://blog.csdn.net/wanhuiguizong/article/details/79289986 版权声明:本文为博主原创文章,转载请声明文章来源和原文链接. https:// ...
- [转帖]Linux中buff/cache内存占用过高解决办法
Linux中buff/cache内存占用过高解决办法 https://www.cnblogs.com/rocky-AGE-24/p/7629500.html /proc/sys/vm/drop_cac ...
- 一个神奇的bug:OOM?优雅终止线程?系统内存占用较高?
摘要:该项目是DAYU平台的数据开发(DLF),数据开发中一个重要的功能就是ETL(数据清洗).ETL由源端到目的端,中间的业务逻辑一般由用户自己编写的SQL模板实现,velocity是其中涉及的一种 ...
- Linux 内存 占用较高问题排查
Linux 内存 占用较高问题排查 niuhao307523005 2019-04-24 14:31:55 11087 收藏 11展开一 查看内存情况#按 k 查看 free #按兆M查看 free ...
- 性能测试问题_Mysql数据库服务器的CPU占用很高
MySQl服务器CPU占用很高 1. 问题描述 一个简单的接口,根据传入的号段查询号码归属地,运行性能测试脚本,20个并发mysql的CPU就很高,监控发现只有一个select语句,且表建立了索引 ...
随机推荐
- Findbugs介绍及使用方法
1. 简介 Findbugs 是一个静态分析工具,它检查类或者 JAR 文件,将字节码与一组缺陷模式进行对比以发现可能的问题.利用这个工具,就可以在不实际运行程序的情况对软件进行分析.它可以帮助改 ...
- SDWebImage清除图片缓存
背景: 使用 SDWebImage 库,由于内存中一直缓存着加载的图片,而导致内存过高(我们无法手动管理内存),弹出内存警告而导致程序很卡或者直接crash掉. 我的解决方法: 在AppDelegat ...
- iReport 开发和运行所用版本不一致导致设置字体大小不起作用
问题:开发环境使用 Win10 + iReport 5.6 ,运行环境使用 Win10 + iReport 5.2 ,设置字体的大小不起作用. 解决方法:开发环境和运行环境一致,都使用 iReport ...
- Windows Server 2012部署Enterprise Solution 5.4
最近一个客户升级系统,改用Windows Server 2012作为服务器操作系统.升级之后性能未见明显的改善,在不改变代码的基础上,考虑到C/S架构的能力,增加内存或是处理器的处理能力似乎可以解决一 ...
- Javascript单元测试之QUnit
首先去Qunit官网下载. Qunit有一个js脚本文件和一个css我们在页面中引入它. <script src="qunit-2.0.1.js"></scrip ...
- HashSet中实现不插入重复的元素
/* 看一下部分的HashSet源码.... public class HashSet<E> extends AbstractSet<E> implements Set< ...
- 发表在 Science 上的一种新聚类算法
今年 6 月份,Alex Rodriguez 和 Alessandro Laio 在 Science 上发表了一篇名为<Clustering by fast search and find of ...
- Bounce.js – 快速创建漂亮的 CSS3 动画效果
Bounce.js 是一个用于制作漂亮的 CSS3 关键帧动画的 JavaScript 库,使用其特有的方式生成的动画效果.只需添加一个组件,选择预设,然后你就可以得到一个短网址或者导出为 CSS 代 ...
- 使用Html5+C#+微信 开发移动端游戏详细教程 :(三)使用html5引擎搭建游戏框架
教程里的案例我们是通过H5游戏引擎开发,目前H5的游戏引擎比较好用的是白鹭,不过对于新手来说白鹭的开发环境和工具使用过于复杂,这里推荐一个国内大神编写的游戏引擎:lufylegend. 直接在页面引入 ...
- Android中BroadcastReceiver广播
BroadCastReceiver 简介 广播接收者( BroadcastReceiver )用于接收广播 Intent ,广播 Intent 的发送是通过调用 Context.sendBroadca ...