我准备一个networking服务器,并已经安装了WordPress的。 一切正常。 但是即刻,内存使用量增加了。 现在我只有300MB的内存空闲。 为了检查问题,我禁用了一些服务,如php,nginx,fail2ban,psad和mysql。 它减less了内存使用量,但仍然太高。 然后我重新启动机器,然后重新开始工作。 再过一段时间后,内存使用量猛增! 我怎样才能find确切的问题? 什么可能导致这个问题? PS:它是一个Ubuntu PS:看起来交换还没有使用。 交换使用情况:0(服务器是虚拟机(KVM)) free -m的输出 total used free shared buffers cached Mem: 2003 1764 238 0 43 1350 -/+ buffers/cache: 370 1633 Swap: 2043 0 2043
我现在有一个IIS7网站。 如果我观察远程服务器的内存使用情况,通常在300-400MB左右,但有时候会在5-10秒内随机增加到10gb。 我试图通过在更短的时间内从服务器iislog发送相同的请求来在本地主机中复制此错误,但是我无法复制它。 我检查了我的代码没有处置的对象等,我的代码似乎安全。 我已经尝试在IIS6上服务这个网站,fw2和结果总是一样的。 我已经在服务器上安装了.NET Memory Profiler,并在发生这种泄漏时拍摄了一个快照,并在未引用的对象部分列出了大量的内存。 我怎样才能看到原因?
系统进程中的无效句柄(Windows Server 2008 R2 x64)增加了。 数额大约是每周100万。 根据Process Explorer的处理types是文件。 从任务pipe理器看来,内存没有分配给任何进程,但是图表显示了高(并且在增长)的物理内存使用情况。 如何避免或释放无效的系统句柄?
我们使用Windows Server 2008 R2运行虚拟机,我们发现物理内存利用率总是接近100%。 机器正在运行水晶报表服务器。 任务pipe理器计数到99%内存利用率,其中来自任务列表的所有进程使用的总和内存仅占总可用内存的1/4。 不知道他们是否是内存泄漏,如果是的话如何find并修补它? 我同意通过总结任务列表值不是正确的方法,因为它可能不考虑caching等,但我猜测它可能是第一个开始。 物理内存(MB) 总计32767caching120可用117免费0 内核内存(MB) 分页381非分页200 系统 —- 提交(GB)19/63
我有一个大的php cronjob每20分钟运行一次。 每次执行后,虚拟服务器使用的RAM内存会增加,脚本终止后不能正常释放! 但为什么? 内存不被caching total used free shared buffers cached Mem: 2048 1948 99 0 0 88 -/+ buffers/cache: 1859 188 Swap: 0 0 0 该脚本使一些curl / multi_curl和更新Mysql数据库。 有一种方法可以查看所有variables和内存使用情况的脚本吗? 或简单的那些没有发布在最后…
我疯了,试图find我们的主要箱子之一的内存泄漏。 它运行CentOS,内核2.6.18,x86-64。 这个盒子(实际上是Xen上的VM)自从6个月前创build以来就一直运行良好。 它是为了replace旧的物理盒子而创build的,并且以相同的方式进行了configuration。 VM是一个Web服务器,只运行Tomcat和Apache。 这是坚实的,没有问题,没有内存泄漏。 大约两周前,我们有一个问题,我们的Xen设置中的四个物理服务器中的两个重新启动(出于某种原因)。 我们稍微恢复了一些,并没有太多的问题(我们不得不重新加载一个MySQL数据库,在复制过程中由于停机而错过了一些logging)。 从那以后,我们在这个虚拟机上遇到了内存问题。 我们所有的其他虚拟机都没有问题,只有这个。 内存使用量将增加,最高可达200 MB / h,直到盒子用完。 它会通过交换咀嚼,然后OOM杀手将开始导致问题,直到我们重新启动虚拟机。 在尝试其他事情(重启VM,重启物理服务器,将VM迁移到不同的物理服务器)后,我使用RPM来validation磁盘上的所有文件,以发现损坏。 我发现一些文件,我不确定我们甚至使用过,所以我重新安装了软件包,以便它们再次清洁。 这减缓了泄漏,但仍然存在。 现在我们正在以10-50MB / h的速度泄漏,但似乎在接近尾声时加速。昨天,当服务器几乎空闲时,内存迅速攀升,由于某种原因,在12小时内上升了2.5个演出。 有趣的是,在运行rpm来validation所有内容之前,在进程退出之前,它抓取几乎所有可用的物理内存,之后必须重启虚拟机。 唯一的configuration变化是将虚拟机的内存从2GB提高到4GB,这样内存耗尽需要更长的时间,我们不得不重新启动。 我试过跟踪记忆。 这似乎是我们正在失去的匿名页面,因为该框并没有真正使用它的磁盘,我不惊讶,我们正在失去的网页不支持磁盘。 Tomcat / Java有2个虚拟内存,挂在1个居民身边(分配给1.5个演出)。 就像我刚才所说的那样,这是6个月以上的configuration,以及之前使用多年的configuration。 事件发生前一周,我们的软件没有更新,所以不是这样。 从那以后,我们重build了它并进行了更新,但这并没有解决问题。 我们已经尝试使用yum更新系统上的所有其他内容,但这没有什么区别。 没有百胜安装的唯一的软件是Java(我更新)和我们的软件(我更新)。 我编写了一个小程序,通过在/ proc文件系统中总计数字来跟踪虚拟机上每个进程的总虚拟大小,常驻大小和数据段大小。 让它运行一天之后,你可以看到Apache的虚拟大小随着负载而上下反弹,但是常驻大小从未改变过。 Java整天慢慢地爬到了50MB的地步,并且符合我们的期望。 然而在那段时间,我们损失了500多MB的内存。 顶部不显示任何使用更多内存的Java。 我的程序发现服务器上的每个进程(除Java和Apache之外)在一天之内都没有改变超过几千字节。 基本上,有些东西在吃掉我们的记忆,但是我完全搞不清楚是什么。 内核是我最好的猜测,但即使内存使用率很高,内核的内存大小(我记不起来的/ proc / vmstat中的内容)只有大约200兆字节。 在这一点上,我们准备从头开始重build虚拟机。 我认为这是最终的结论。 当这样的事情发生时,你如何找出漏记的内容? 我从来没有见过像这样的内存泄漏(这并没有出现在顶部),但我的经验是相当有限的。 任何人都可以提出一些我可以看看或我可以在这种情况下使用的工具吗?
在将我们的内存+物理内核丰富的数据库服务器切换到大页面之后,我们发现了一个小问题。 内存使用几乎看起来像是有某种内存泄漏。 但运行FLUSH TABLES清除大约10G内存(取决于当然我们运行的时间,以及我们等待的时间)。 附上的是一个显示这种内存使用情况的图表。 是什么原因导致我们每隔两天强制刷新表? 有关附表的说明: a)图表一开始就很好的平面内存使用情况是当我们运行(Oracle)MySQL 5.6时没有大页面。 b)10-11之间的内存使用倾向是当我们运行Percona 5.6的大页面时。 在11月底,我们从Percona切换到Oracle MySQL 5.6(但决定留下大页面)。 c)12-14.5之间的内存使用倾斜是我们回到(Oracle)MySQL 5.6启用了大页面的时候。 我们认为这种增加的内存使用是由于Percona内存泄漏造成的。 这就是为什么我们切换回(Oracle)MySQL 5.6。 保持大页面。 d)14.5左右的内存使用率下降是我们第一次尝试运行FLUSH TABLES(此时还在运行Oracle MySQL 5.6,不重启,只是做一个简单的FLUSH TABLES)。 经过这种来回切换,我们已经知道,原因不是percona 5.6,而是大页面。 所以,总结一下: 什么是迫使我们每隔2天运行一次FLUSH TABLES,以防止大页面启用内存不足? 我知道我们可以在非高峰时间安排一个FLUSH TABLES,但是想要正确地解决这个问题。 谢谢!
我们有一个内存泄漏困扰着我们的许多2008R1SP2文件服务器。 poolmon.exe中的“File”非分页内存标签将泄漏,直到共享文件夹不再可用,然后RDPclosures(我们必须通过控制台重新启动)。 有时这个泄漏是> 1.5G /天。 如果有什么东西需要删除,我需要有一个相当不错的预感,一个巨大的CM需要被批准。 自从开始发生以来,唯一的变化就是增加了McAfee Agent 5.0.2.132,但是McAfee的AV还没有以任何方式运行(它正在为尚未实施的迁移做准备)。 我意识到poolmon屏幕中的MFEm标记是McAfee,但是在大多数泄漏的服务器中,它的列表并不高。 此外,追溯到网卡驱动程序(无论是iANS或BCM8)的标签通常都在非页面字节sorting的前五六位。 我们还没有尝试从networking隔离,但也许这是一个好主意。 我理解的下一个逻辑步骤是运行xperf / Windows Performance Toolkit,但是这似乎需要.NET 4.5,由于多种原因,我们无法安装它。 1)是否有人知道在哪里可以下载独立版本的xperf,与2008R1SP1兼容(甚至只有CLI)? 2)假设#1是不可用的(或至多是一个糟糕的想法),有没有其他工具可以跟踪和跟踪池标签类似的方式? 3)你有什么build议可以让我指出正确的方向吗?
我有一个封闭的源码软件,有一些内存泄漏问题。 有没有一个工具或解决scheme的“沙盒”进程在固定的内存量不使用“ulimit”(通用,我需要一个应用程序的内存控制)
我们正在运行TFS 2010标准版,并且我们已经build立了一个自动构build,以便在有人签入代码时运行。 作为构build的一部分,我们运行所有自动化testing(使用MSTest构build)。 我们已经configuration构build以运行testing作为64位进程,但运行testing的QTAgent.exe在testing运行时在内存中增长。 目前,我们已经达到了〜650个testing,达到了8GB,而当我们从450个testing变为650个testing时,这个过程已经显着减慢了。 当我们在本地开发环境中运行所有的testing时,内存似乎至less被每个TestClass释放,并且永远不会超过一定的水平。 在当地的开发环境中,运行所有testing的过程并没有显着增加。 有没有一种方法来configuration构build服务释放与每个testing或每个TestClass内存? 在目前正在运行的方式中,当我们开始在机器上耗尽内存时,构build过程变得非常缓慢。 编辑:我发现生成日志中的MSTest调用,并手动运行,看到失控的内存相同的行为。 我从MSTest的调用中删除了/ publish,/ publishbuild,/ teamproject,/ platform和/ flavor参数,以防testing运行器持续到结果,但行为没有改变。 我在开发箱上运行相同的命令行,与生成服务器分开,并且内存经常被释放。 似乎必须有一些错误/不同的build设服务器,使其行为有所不同,但我很难看的地方。 我已经看过qtagent.exe.config,mstest.exe.config,两个可执行文件的版本。 还有什么可能会影响这个?