问题 一个服务器在多次“内存不足”消息后崩溃,我试图找出罪魁祸首。 如果是在userland – 哪个进程。 如果是在内核 – 哪个内核模块。 细节 我想了解如何使用崩溃实用程序来调查在服务器上触发OOM的内容。 作为安装一对新服务器的一部分,我开始了一个14TB DRBD设备的初始化。 大约在那个时候,在玩DRBD同步器速率configuration的同时,一些绑定的networking接口上下,其中一台服务器崩溃。 超过30秒的时间它产生了39 Out of memory: Kill process ####消息。 然后它坠毁了: Kernel panic – not syncing: Out of memory and no killable processes… 系统崩溃触发了kdump 。 现在我有一个很好的vmcore.flat文件,应该直接用来调查这个问题,但是我很难找出所有的内存在哪里。 我知道唯一的资源是Dedoimedo的网站 ,它有很好的说明 ,和内核崩溃书 。 这些也恰好是答案中提出的唯一资源,所以我认为crash是调查的唯一方法。 如果还有另外一种方法对事件进行验尸,我愿意接受。 只是crash是我意识到的唯一效用。 我现在所有的是vmcore.flat文件,我只需要知道哪个组件吃掉了所有内存。 我怀疑一个内核模块的问题,更具体地说,其中一个绑定模块(因为它是在我把一个接口拉下来的时候触发的),DRBD模块(版本8.3.15是在CentOS 6.3上用树build立的),或者是其中一个10G以太网模块( mlnx_en是由树形结构构成的,也就是树形结构的bnx2x ,它是保持活动状态的接口)。 我只需要知道是否有办法来validation我的怀疑。 到目前为止,我只设法使用crash实用程序提取以下信息: 检查了使用了多less内存 $ crash /usr/lib/debug/lib/modules/2.6.32-279.5.2.el6.x86_64/vmlinux vmcore.flat […]
我已经在Windows 2008上看到WmiPrvSE泄漏的引用,但是没有涉及到Windows 2008 R2。 我们在Hyper-V(2008)之上运行R2。 我们也从opsview运行NSClient ++进行监控。 随着时间的推移,WmiPrvSE.exe开始使用大量的内存,导致内存警报问题(less于10%免费)。 虚拟机有2GB,WmiPrvSE消耗高达500-600MB之前,我杀了它。 杀死这个过程似乎没有任何负面影响; 它再次启动,我没有注意到任何问题。 但是过了一两天,情况又恢复了。 有什么想法做什么? 资源监视器不显示由WmiPrvSE.exe的任何磁盘或networkingIO。 只是慢慢攀登私人记忆 编辑添加:我们没有运行集群或Windows系统资源pipe理器。 我能猜到的唯一的常规WMI用户是NSClient ++,但是在其他服务器上我们似乎没有这个问题。
我有运行liquidsoap + icecast捆绑和简单的网站(httpd + mysqld)的服务器。 没什么特别的。 每天约2000+的访问者,大约50人在线同时在线。 服务器有8GB RAM。 随着时间的推移,空闲内存的数量不断减less,虽然在服务器上没有新的东西开始,也没有新的用户。 在某个时候,它开始交换,服务器负载上升,它变得没有响应。 通常我所做的只是重新启动服务器… 可以做什么来检测到什么内存泄漏? 我使用top来监视资源的使用情况,但据我所知,它没有任何帮助: 有什么方法可以找出使用那么多内存的东西吗? 或者开始大量交换到磁盘? 任何方式来释放内存,而无需重新启动服务器?