【问题标题】:Replicating load related crashes in non-production environments在非生产环境中复制与负载相关的崩溃
【发布时间】:2010-09-05 18:54:23
【问题描述】:

我们在 Intranet 上运行自定义应用程序,最近升级后发现一个问题,即 IIS 在 CPU 使用率达到 100% 时挂起,需要重置。

在确定解决方案时,我们已回滚到以前的版本,而不是让用户陷入困境。第一步是重现问题——但我们不能。

这里有一些背景:

Prod 有一个带有两个 CPU 和 2 GB RAM 的虚拟化 (vmware) Web 服务器。数据库服务器有 4GB,还有 2 个 CPU。它也在 VMWare 上,但是是独立的物理硬件。

在正常使用期间,应用程序运行良好。 w3wp.exe 进程通常使用 5-20% 的 CPU 和大约 200MB 的 RAM。 CPU 和 RAM 在正常使用情况下会略有波动,但没有什么异常。

但是,当我们开始遇到问题时,RAM 会急剧攀升,CPU 会稳定在 98%(或尽可能多)。该站点变得无响应,需要重新启动 IIS。在这种情况下,重置应用程序池不起作用,需要完全重新启动 IIS。

它不会在夜间发生(不使用)。当网站处于负载状态时,这种情况会发生更多,但在非高峰期也会发生。

解决这个问题的第一步是重现它。为了模拟负载,我们开始使用 JMeter 来模拟使用。我们的加载脚本基于崩溃时的实际使用情况。使用 JMeter,我们可以提高使用率(崩溃期间负载的 2-3 倍),但站点运行良好。 CPU 很高,网站确实变得迟缓,但内存使用合理,没有任何问题。

有人对如何在非生产环境中重现此类问题有任何提示吗?我们真的很想重现错误,确定解决方案,然后再次测试以确保我们已经解决了它。在此过程中,我们发现了一些我们已经改进的小东西可能会解决问题,但如果我们能够重现问题并测试改进的版本,我真的会更有信心。

非常感谢任何工具、技术或理论!

【问题讨论】:

  • 我假设您有来自 IIS 和/或您的应用程序的日志记录功能?当问题开始时,究竟是什么导致了这种情况?这与您的负载测试模拟的有什么不同?
  • 我有同样的问题,看看你的 vmware 性能日志,看看一两个月的内存,对我们来说,每 8-10 天就会发生一次,当我们的内存较少时每六天。看起来有内存泄漏。我们在真实的物理服务器上运行完全相同的网站,没有问题,这似乎是 IIS 和 vmware 的问题。要回答您的问题,请尝试运行加载工具一段时间(几周)并在测试服务器上设置跟踪。如果您找到解决方案,请发布,我无处可去。

标签: asp.net performance memory crash cpu


【解决方案1】:

你的测试环境真的和现场一样吗? IE 2 个物理服务器上的 2 个独立 vm 实例 - 使用网络连接和帐户类型?

数据库上还有其他实例吗?

IIS 中是否还有其他 Web 应用程序?

.Net 配置正确吗?

应用程序池配置是否适用于服务帐户? Try look at this - MS Article on II6 Optmising for Performance

很多技巧。

【讨论】:

    【解决方案2】:

    我有an article about debugging ASP.NET in production,它可能会提供一些指示。

    【讨论】:

      【解决方案3】:

      您可以在this blog entry 找到有关解决此类问题的一些信息。她的博客通常是一个很好的调试资源。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-05-22
        • 1970-01-01
        • 1970-01-01
        • 2021-10-08
        • 1970-01-01
        • 2011-07-26
        • 1970-01-01
        • 2020-08-05
        相关资源
        最近更新 更多