【问题标题】:Performance and monitoring .NET Apps性能和监控 .NET 应用程序
【发布时间】:2009-12-21 12:57:37
【问题描述】:

我们构建了一个 Web 应用程序,即使有很多可用资源,它的性能也很糟糕。我的老板不相信我的应用程序消耗了大量的硬件IO,所以我必须证明硬件是好的,但是网络应用程序真的很垃圾。

应用正在使用:

  1. 带有 SP4 的 SQL Server 2000
  2. 主 Web 应用程序 (.NET 3.5)
  3. 两个 Web 服务 (.NET 1.1)
  4. Biztalk 2004

有 30 人在使用此应用。

我如何证明我是对的?

【问题讨论】:

  • 是什么让你认为你的应用消耗了大量的硬件 IO?
  • 为什么慢?内存不足? CPU高吗?还是高磁盘 I/O?
  • 你对“慢”的定义是什么?
  • @Ram,当人们使用 Web 应用程序时,例如单击按钮或向数据库发出请求。 Web as DB Server 都在高 CPU 上运行并消耗大量内存。

标签: c# asp.net sql-server web-services biztalk


【解决方案1】:

您可以连接像 ANTS profilerJetBrains DotTrace 这样的分析器,然后查看应用程序的性能瓶颈在哪里。

【讨论】:

    【解决方案2】:

    您可以从获取性能分析器(如 Red-Gate ANTS 分析器)入手。我用过这个工具,它在消除性能瓶颈方面非常有用。

    兰迪

    【讨论】:

      【解决方案3】:

      您可以先使用 SQL Server Profiler 来了解正在发生的数据库流量。

      我并不是说数据库交互是瓶颈,但它经常是瓶颈,如果您使用 SQL Server,该工具已经存在,因此在您外出之前查看一下可能是个好主意并购买了很多分析工具。

      Visual Studio 2008 也有内置的性能分析工具。

      【讨论】:

        【解决方案4】:

        Windows 性能计数器是获取有关一般系统性能的一些基本信息的好方法。适当的计数器会告诉你它是否真的是做很多事情的 IO。如果您从计数器中取出数字并将其与规格进行比较,您应该能够判断系统是否已达到最大值。

        如果系统达到极限,则说明 Web 应用程序有问题,应该对其进行分析以找出从哪里开始优化。

        【讨论】:

          【解决方案5】:

          至少从 XP 开始,您就可以使用 Windows 内置的系统性能监视器。您几乎可以获得任何可能需要的信息。这包括 CPU 时间、.NET 内存使用量(包括 gen0 gen1 和 gen2)、本机内存使用量、垃圾收集所花费的时间、磁盘访问时间等。如果您只是搜索 codeproject 或只是在 web 上有很多使用这些的示例计数器来测试你想要的任何东西。

          这样做的好处之一是您不必更改代码并且可以与现有系统一起使用。

          我发现这是指出您应该从哪里寻找瓶颈和问题的最佳起点。

          【讨论】:

            猜你喜欢
            • 2014-02-23
            • 2010-12-26
            • 1970-01-01
            • 1970-01-01
            • 2011-02-28
            • 2011-06-04
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多