Articles of 内存泄漏

未得到充分利用的Apache服务器引发MaxRequestWorkers达成:内存泄露?

在具有1Gb RAM的Ubuntu服务器上,具有默认configuration的Apache 2.4.7服务器开始偶尔停止响应请求。 它用于个人云+其他需求和低stream量的网站。 一个error.log检查揭示了这种模式,每次出现问题时都会反复出现: [mpm_prefork:error] [pid 31950] AH00161: server reached MaxRequestWorkers setting, consider raising the MaxRequestWorkers setting 之后access.log根本不logging任何访问。 一天后: [mpm_prefork:notice] [pid 31950] AH00171: Graceful restart requested, doing restart 这显然没有任何区别。 我不得不每次手动重新启动服务器。 现在我正在看mpm_prefork.conf ,这是默认的,从我已经能够收集的信息,我不认为我需要改变任何东西。 我已经开始怀疑可能会有一些内存泄漏,并且读取MaxConnectionsPerChild 1000是防止内存泄漏的一种手段,所以我把它设置为1000,并且会看到它的行为。 由于曾经有一段时间的错误,所以很难理解究竟是什么导致了这个问题。 你认为在这种情况下使用MaxConnectionsPerChild是一个很好的策略(希望内存泄漏将在我所托pipe的站点的进一步发布中得到解决),还是这不表示内存泄漏? 注意:平均Apache进程消耗了大约20Mb的内存,我把MaxRequestWorkers从150减less到了30(考虑到服务器上Apache的500Mb可用内存)。 我现在有了: <IfModule mpm_prefork_module> StartServers 5 MinSpareServers 5 MaxSpareServers 10 MaxRequestWorkers 30 MaxConnectionsPerChild 1000 </IfModule> 我不认为记忆达到了顶峰,但是当我的穆宁客户倒下时,我意识到,现在我不能排除它。

我的记忆在哪里? Nginx + PHP-FPM前端networking服务器变慢了

我不知道如果我有一个内存泄漏问题(如我的托pipe公司build议),或者如果我们都需要阅读http://linuxatemyram.com 。 也许你聪明的人可以帮助我们吗? 这是一个基本上只在RHEL5.5上运行nginx&php-fpm的前端Web服务器虚拟机。 这台服务器正在为Magento,一个PHP电子商务东西提供动力。 服务器正在共享环境中运行,但我们正在尽快更换。 无论如何..重启后服务器运行良好,但在一天之内,它会磨成虚无。 页面会花费2分钟的时间加载,像CPU疯狂的CPU峰值等。当我SSH进入时,控制台甚至是缓慢的。这就像我的整个服务器正在瘫痪。 我也一直在监视数据库服务器通过顶级和tcpdumping传入的stream量。 数据库在“慢”加载时间的很大一部分保持空闲状态。 当我开始看到来自前端服务器的查询时,页面很快就会加载。 下面是一些在重启php-fpm之后在减速过程中login的统计数据: [mike@front01 ~]$ free -m total used free shared buffers cached Mem: 5963 5217 745 0 192 314 -/+ buffers/cache: 4711 1252 Swap: 4047 4 4042 [mike@front01 ~]$ top top – 11:38:55 up 2 days, 1:01, 3 users, load average: 0.06, 0.17, 0.21 Tasks: […]

在Windows Server x64中处理pipe理内存泄漏?

干净的安装和操作系统的Windows x64启动后,我启动cmd.exe(任何其他exe),并closures它。 然后我启动rammap.exe( http://technet.microsoft.com/en-us/sysinternals/ff700229.aspx )。 在第二页称为“进程”我按进程名称sorting列表,看到cmd.exe仍然消耗内存(4K私人和16K页表= 20K)。 我第二次启动它,并在此列表中出现新项目(每个进程启动+终止一个)。 所以每个进程终止都需要20K的内存。 如果你的软件经常在这样的服务器操作系统上启动和终止进程,你会发现在几天或几周之后,操作系统开始显示奇怪的错误(通常内存不足)。 而更多的日子之后,你所要做的就是重新启动操作系统。 重新启动后,它几乎可以在相同的时间内正常工作。 我在每台2008服务器R2 x64(+ SP1和-SP1)上注册了这个问题,在2003 Server x64上间接(rammap不支持)。 在Windows 7 x32(+ SP1和-SP1)上未观察到此问题。 截图 看到这个问题的第一步探索页表快速增长 任何人都可以反驳或批准我的假设和观察吗? 任何人都可以告诉如何解决这个问题? 它是错误还是不是?

ASP.NET应用程序吃内存。 Application / Session对象的原因是什么?

所以我们正在testing由外部公司开发的ASP.NET应用程序。 我们每秒处理大约50个请求,大约半小时后,48个工作进程(w3wp.exe)中的每个进程都高达大约400 MB并计数。 在IIS7上运行。 在干预dotTrace之后,我相当肯定这里有一个内存泄漏,但是如果不知道应用程序,很难100%确定。 当我们用这个理论面对开发人员的时候,他们在30秒之后解释了这个问题,说“像.NET一样自动处理内存”。 如果是最终的数据,.NET将会有垃圾收集48x400MB。 无论如何,我习惯于使用WinForms。 如何在ASP.NET中创build内存泄漏? (误)在.NET中使用应用程序和会话对象的唯一方法? 编辑 我已经发布了这个问题,得知在请求处理程序中持有对象的静态引用(无论是Web服务类,Web表单还是其他)都会导致“泄漏”。 也许这里不是正确的名词,但无论如何…这是我不确定的,因为我认为处理程序类在IIS的每个请求后被杀死和重新创build。 所以这样的代码: public class SomeService : IService { public static List<RequestData> _requestDataHistory = new List<RequestData>(); public void SomeRequest(RequestData data) { _requestDataHistory.Add(data); } } 将迟早会崩溃你的服务器。 也许这对大多数人来说是显而易见的,但不是对我来说:-) 如果你删除了static关键字,仍然不确定这是否会成为问题。 在每个请求之后是否处理实例 ?

如何debuggingNode + Socket.io CPU问题

我们使用Express 3运行Node Socket.io服务器。使用Forever监视服务器。 该服务运行良好,但CPU一直在增长,直到达到90%以上,然后突然下降到20%左右,如下图所示。 我相信,永远是重新启动应用程序所造成的下降。 我想知道的是 什么是可能导致Node.js应用程序行为的典型因素? 什么工具/方法可用于debugging节点应用程序中的内存泄漏/ CPU占用? 我认为这可能与Socket.io在用户断开连接时没有清理资源有关,尽pipe文档说Socket.io会自动pipe理这些资源。 任何帮助将不胜感激,这个问题是使我们的服务器pipe理非常困难。 请让我知道这个问题是否会更适合StackOverflow。 更新:经过更多的研究,看起来CPU并不直接与连接数相关。 我们的临界质量似乎大约是1500个并发连接,如下所示: xhr-polling:767 websocket:692 jsonppolling:80 有时我们可能只有500个连接,而其他时间只有1500个连接。 我知道发送邮件的速度有很大的影响,但速度是相当一致的。

我的Centos服务器是否泄漏内存?

我收到有关虚拟化服务器内存使用情况的一些冲突信息。 最令人震惊的消息是: 请注意,服务器只有4GB的RAM分配,即使提交显示12GB。 另外,如果我运行ps aux | grep httpd ps aux | grep httpd我得到以下内容: root 1566 0.1 9.5 580392 375540 ? Ss Jun18 96:15 /usr/local/apache/bin/httpd -k start -DSSL root 4212 0.0 9.4 580388 371948 ? S 08:01 0:00 /usr/local/apache/bin/httpd -k start -DSSL nobody 7674 0.6 9.5 580392 373600 ? S 08:26 0:02 /usr/local/apache/bin/httpd -k start -DSSL […]

我的Apache2安装程序是否泄漏内存?

最近,我注意到我的apache在我的Linode服务器上使用了荒谬的内存(比以前多了80MB),重新启动apache2似乎解决了这个问题。 我通过Apache运行SVN,以及服务器上的mysql和tomcat,但似乎都没有问题。 如何debuggingapache在丢失内存的地方? 除了SVN之外,它实际上只是托pipe一个WordPress博客,所以我没有看到漏洞在哪里发生。 我使用了Ubuntu 8.04版本库的默认安装。 任何帮助?

Windows Server 2008 R2上“待机”中的内存负载

在我们的SharePoint场中,我们的Web前端服务器都处于“待机”模式,这意味着我们的IIS工作进程可用的内存很less。 我们在每个盒子里都有32GB的内存,待机内存会爬到大约28GB,而IIS工作进程只能使用大约2GB。 此外,我们已经看到机器在内存处于待机状态时广泛使用交换文件,所以我开始认为这个处于待机模式的内存正在阻止IIS使用它,迫使它交换到磁盘,导致更多的性能问题。 我使用SysInternals RamMap来识别内存中的内容,并且能够告诉我几乎所有在备用内存中的内容都是“Mapped File”types的。 当我按照文件大小对RamMap文件摘要选项卡下列出的文件进行sorting时,最大的文件(每个大约几百meg)是IIS日志文件和SharePoint日志文件。 我想了解哪个进程将这些文件加载​​到备用内存以及为什么它们不被释放。 当我做一个iisreset ,它不释放内存。 有任何想法吗? 谢谢!

如何限制IIS中的应用程序使用的内存?

IIS工作进程正在我们的服务器上占用大量内存。 我想限制每个应用程序可以使用的内存。 我很困惑我是否应该对虚拟内存限制或私有内存限制设置限制。 我们的IIS中的每个应用程序都在自己的应用程序池中。 如果我将私人内存限制设置为500MB,虚拟内存限制为3GB。 应用程序池何时回收? 达到500MB或达到3GB后是否回收?

Windows 2012 Core Extreme内存在SVCHOST / Workstation服务上使用

我们有大约200台服务器,Hyper V,文件集群和IIS,都遇到同样的问题,通过正常使用,服务器上发生的事件发生在服务器上的RAM最大或接近最大值。 一旦发生这种情况,SVCHOST / Workstation服务(特别是通过将Workstation服务与自己的SVCHOST隔离开来)将停止释放句柄/线程,并且该服务所使用的内存不会被释放。 在一些极端的情况下,我们有一个在255GB服务器上使用多达40GB内存的Workstation服务。 在某些情况下,还可以find超过4000万个句柄。 在重新启动时,问题当然会消失,直到所有的内存都被使用,例如W3进程或者HyperV虚拟机,在这之后Workstation服务开始抓取所有的内存。 该过程非常缓慢,可能需要数周/数月,具体取决于服务器上的RAM数量。 我们的Hyper V服务器和IIS服务器都可以访问工作文件的共享,这些共享位于SSD存储上,所以它们具有很高的性能。 我们已经安装了所有当前的补丁,但还没有搬到R2,因为我们有很多的工具,这将是一个重要的步骤,无法find任何明确的迹象表明,这将在R2中得到解决。 我们运行ProcMon和其他工具,但在最有问题的服务器上,这些工具甚至不能运行。 在其他方面,他们提供的结果只是表明在这个过程中确实存在内存泄漏。 有没有一种方法可以从这个过程中释放内存或一起避免错误? 我们不希望重新启动,并且一旦处于错误状态,我们就不能重新启动进程。 这个过程变得冻结了。 我们正试图避免定期重启来解决这个问题,所以任何答案将不胜感激。