性能问题 - 增长内存和CPU使用率

时间:2011-05-14 19:08:16

标签: performance memory memory-leaks cpu

我写了一些Windows应用程序 我将它安装在拥有Windows Server 2008的虚拟服务器(vmware)上,由于某种原因,应用程序变得越来越大。我使用perfmon以查看可能存在内存泄漏 - 但据我所知,没有:
perfmon

这是任务管理器中的过程:
task manager

还有两个使用大量内存和cpu但仍稳定且不会像SimeserManager.exe那样增长的进程​​。

内存增长减慢了该服务器所持有的冲浪速度。 在本周之前,我在使用Windows Server 2003的phizical服务器上使用了我的应用程序,并且没有冲浪问题。由于我不再使用它,我无法恢复电脑中的坐标,但我不相信使用phizical服务器时存在内存错误。

该应用程序使用visual studio 2010以c#.net编写。

可能是什么问题?
我在哪里可以获得一些线索?

更新
我得到ANTS内存分析器并试图寻找问题。我创建了内存快照,结果如下:
ANTS memory profiler

现在我真的迷路了。
我尝试了标准过滤器,但没有找到解决问题的线索。在图像中,您可以看到私有字节增加。这是否存在内存泄漏?

谁能给我一些线索如何继续?

谢谢!

1 个答案:

答案 0 :(得分:1)

我们这里没有足够的信息来真正调试您的应用程序。但是,您可以使用工具在应用程序中识别和解决此问题。我建议您使用RedGate的ANTS Memory Profiler来帮助您查找问题。这是一个链接:

http://www.red-gate.com/products/dotnet-development/ants-memory-profiler/

它不是免费的,但它便宜且非常有效。获得14天免费试用版并在您的应用程序上运行它。我甚至会说,如果它没有找到问题,问题可能与您的申请无关。

对于占用大量内存的其他进程,这是正常的。 SQL Server尝试获取尽可能多的内存。如果您不小心,在与SQL Server相同的盒子上运行其他应用程序可能会导致性能问题。这是一篇关于SQL Server如何使用内存的好文章:

http://sqlblog.com/blogs/jonathan_kehayias/archive/2009/08/24/troubleshooting-the-sql-server-memory-leak-or-understanding-sql-server-memory-usage.aspx

对于IIS内存使用情况(使用大量内存的其他进程),可能有多种原因。我建议你通读这个论坛,以便更好地了解它可能是什么(如果真的是一个问题):

http://forums.iis.net/t/1150494.aspx