现象:一个后台进程在跑了1000多分钟后,不再写日志,同时进程还有每分钟发送的一个网络请求,在服务端也没看到日志。 排查方式:首先怀疑是进程hang住了,但是通过gdb attach到进程,再打断点 ...
在增加keepalive和libevent 超时后,仍然会几个月后出现lsof统计句柄过多的问题,如下图,红线圈定的是不定期出现的错误关闭流,时间点和server端日志 只看到accpet fd,没有导致正常关闭的可写事件,也就是被keepalive关闭了,而应用层没有close,所以泄露了socket 一致。异常关闭发生在红色和黑色两个报文处。 时间问题,下来继续追 ...
2016-10-18 11:07 0 1605 推荐指数:
现象:一个后台进程在跑了1000多分钟后,不再写日志,同时进程还有每分钟发送的一个网络请求,在服务端也没看到日志。 排查方式:首先怀疑是进程hang住了,但是通过gdb attach到进程,再打断点 ...
2.1的core项目,部署上去之后遇到两个问题 1.进程内存一直缓步增加,并且不释放。 读取配置文件采用了实时读取的方法,配置文件资源无法释放,导致内存增加。 解决方案:依赖注入,或者静态化存储。 静态化方法如下: 2.线程会狂飙 问题描述:使用 ...
近一周发现RabbitMQ有性能问题,即内存占用太高,导致超过了原本的安全线 最后,会导致外面的消息进不来,从而导致系统不可用 参考文章《RabbitMQ内存消耗》知道其中消耗的资源包含,特别是其中RabbitMQ的连接和Channel都会导致资源占用过高 然后再对照我系统 ...
什么是内存泄露? 内存泄露是那些使用过后,应该被清理却没有被清理的内存一直占据着系统资源,通过长时间的累积导致系统崩溃。 Python的垃圾回收机制 1、引用计数 原理:当一个对象的引用被创建或者复制时,对象的引用计数+1,当一个对象的引用被销毁时,对象的引用计数-1,当对象的引用计数变为 ...
内存泄露是每个开发者最终都不得不面对的问题。即便使用自动内存管理的语言,你还是会碰到一些内存泄漏的情况。内存泄露会导致一系列问题,比如:运行缓慢,崩溃,高延迟,甚至一些与其他应用相关的问题。 什么是内存泄漏 本质上来讲,内存泄露是当一块内存不再被应用程序使用 ...
前些时候游戏莫名其妙出现大量内存泄露,我感到很诧异,当然一般情况下游戏的内存管理是极其严苛的,出现如此大量的内存泄露到底是怎么回事? 句柄滥用导致的内存泄露会多夸张呢,尤其SOCKET,在某些客户端系统下,短短5个小时可以吃掉5GB以上内存,有甚者达到6GB,并且进程内存查看非常完好,并无激增 ...
在最近一个项目中,在项目发布之后,发现系统中有内存泄漏问题。表象是堆内存随着系统的运行时间缓慢增长,一直没有办法通过gc来回收,最终于导致堆内存耗尽,内存溢出。开始是怀疑ThreadLocal的问题,因为在项目中,大量使用了线程的ThreadLocal保存线程上下文信息,在正常情况下,在线 ...
最近发现项目有个bug,同时运行多个任务的时候,前端页面报内存不足而导致页面崩溃,这很明显就是内存泄露了。我查看了一下,运行的过程中,因为运行时间很久,所以前端和后台约定了,用计时器setInternal定时去请求后台运行状态,当运行状态为完成时,前端会清除定时器。我预估是因为计时器而导致 ...