代码之家  ›  专栏  ›  技术社区  ›  Darren

在非生产环境中复制与负载相关的崩溃

  •  4
  • Darren  · 技术社区  · 18 年前

    我们正在内联网上运行一个自定义应用程序,最近升级后发现了一个问题,IIS以100%的CPU使用率挂起,需要重置。

    在确定解决方案时,我们已经回滚到上一个版本,而不是让用户受到挂起的影响。第一步是重现这个问题——但我们做不到。

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

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

    然而,当我们开始遇到问题时,RAM会急剧上升,CPU的速度也会达到98%(或者是它能达到的极限)。站点变得没有响应,需要重新启动IIS。重置应用程序池在这种情况下没有任何作用,需要完全重新启动IIS。

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

    对于如何在非生产环境中重现这样的问题,有人有什么建议吗?我们真的希望重现错误,确定解决方案,然后再次测试以确保我们已经解决了它。在这个过程中,我们发现了一些我们改进了的小东西,也许可以解决问题,但是如果我们能够重现问题并测试改进后的版本,我真的会更有信心。

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

    3 回复  |  直到 12 年前
        1
  •  1
  •   Curt Hagenlocher    18 年前

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

        2
  •  1
  •   Jeff Atwood    18 年前

    an article about debugging ASP.NET in production 这可能会提供一些指导。

        3
  •  0
  •   littlegeek littlegeek    18 年前

    你的测试环境真的和live一样吗? 即 2个物理服务器上的2个独立的虚拟机实例-具有网络连接和帐户类型?

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

    .Net配置正确吗?

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