我的 Windows Server 2008 出现了一些问题。我们用它在 IIS 上托管一堆(约 50 个)Web GIS 应用程序。
这种设置通常效果很好,但是当某些应用程序具有某些设置时,就会发生泄漏,并且直到应用程序池或服务器重新启动后才能访问服务器。
我想知道如何找到罪魁祸首,似乎性能监视器是个不错的选择。如果我想将 perfmon 连接到我的域外的服务器,需要做什么?
此外,是否有其他(和/或更好)的工具可以远程连接并查看哪些进程占用了所有服务器内存?
答案1
这听起来像是任何像样的监控应用程序的标准场景。如果泄漏严重到需要重新启动服务器,那么我怀疑非分页池此时正在填满所有可用 RAM。这是一个您可以测量的性能计数器(Memory\Pool Nonpaged Bytes),当它超过限制时会收到警报。
我认为 Windows 本身无法做很多事情来检测这个问题和/或采取纠正措施,尽管您可以尝试在性能监视器中设置一个触发器来自动重新启动服务器。
是否可以选择按计划重新启动 IIS?
除此之外,我们还提供一款免费的第三方软件,名为活动哨兵灯它可以自动检测性能计数器中的泄漏(例如内存使用率持续上升),然后触发重新启动(例如,如果值超过某个阈值)。EventSentry 的商业版本还收集性能数据,然后可以通过基于 Web 的报告进行查看。