繁体   English   中英

诊断asp.net网站/应用程序池的性能

[英]diagnosing performance of asp.net website / application pool

我在使用ASP.Net/C#开发的网站上遇到问题,有时会无限期地占用所有CPU使用率(100%)。 您有什么想法/提示如何解决可能导致这种资源浪费的问题吗? 该网站仍在响应,因此没有崩溃或类似情况。

我从哪里开始有点头绪!

谢谢!

开始在服务器上使用性​​能计数器。 添加用于垃圾回收,线程使用情况的计数器,并确切查看哪个线程正在消耗CPU。

另外,请检查以下内容:

http://weblogs.asp.net/jgalloway/archive/2009/04/09/troubleshooting-an-intermittent-net-high-cpu-problem.aspx

DebugDiag是一个不错的起点: http : //www.microsoft.com/download/en/details.aspx?id= 26798

我在过去也遇到过同样的问题。 我主要遇到HTML rendering很慢的问题。 我通过在页面指令中设置Trace = true来解决此问题,并找出了花费时间的事件。

另一个问题是Memory Management 我正在使用Image Classes ,但未正确Dispose它们。 为此,我开始使用Dispose()方法,并且在体系结构中可以使用Using语句。

using (SqlConnection con = new SqlConnection("Connection String"))
{
    using (SqlCommand cmd = new SqlCommand())
    {
        using (SqlDataReader DR = cmd.ExecuteReader())
        {

        }
        using (DataTable DT = new DataTable())
        {
        }
    }
}

我认为您可能在任何页面上都可能获取过多的记录。 您可以开始使用Paging

最重要的一点是Exception Handling Try Catch块不应该在每一层。 它应该仅在Presentation Layer 原因是,发生异常时,它直接返回到调用函数。 那么为什么要编写Try Catch块,从而stopping the execution每一层stopping the execution

最好和最简单的起点是使用性能分析器。 只需运行它,幸运的话,您会在几分钟内解决问题。

尝试dotTrace ,这是一个很好的选择。 如果您点击链接,则有10天的免费试用和视频教程。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM