c# - 即将失败的暗示

标签 c# asp.net iis detection

我正在寻找可以通过编程方式检查的指示器,这些指示器会提示我的应用程序即将发生故障。我正在寻找诸如“空闲 IO 线程数量低到危险程度”、“应用程序池可用内存低”和“处理器使用率高”之类的一般信息。

这适用于 C#/asp.net 和 IIS。

以编程方式检查值的示例会很好,但不是必需的。欢迎任何好的想法。

最佳答案

我的想法:

确定您的网络应用的性能输入和输出。

  • 输入(用户数量、用户正在执行的任务、一天中的时间等)
  • 输出(内存使用、线程、滞后)

根据真实请求数据分析您的应用程序。 构建一个漂亮的输入及其相关输出表。 例如:

4 users calling page1 -> costs 4   - 6   mb, 4 threads
5 users calling page1 -> costs 7   - 14  mb, 5 threads
2 users calling page2 -> costs 120 - 200 mb, 1 thread

找到经常导致失败的输出,并找到导致这些输出的输入。建一个漂亮的max-likelyhood model失败。

当您的输入开始接近失败输出时,很可能即将发生失败。记录故障发生和不发生的时间,并将此信息反馈到您的表格中。您的网络应用程序将在即将失败时学习。

更新以回应评论:

查找输出是最简单的部分。

参见 SO 问题 How to get memory used in c# , How to get the cpu usage in C#对于更一般的问题 What key performance monitors should I watch for asp.net application .

这些问题的要点:

  • GC.GetTotalMemory - 告诉您垃圾收集器分配了多少。

  • Processor Object - 告诉您 CPU 上各种有趣的性能统计数据(CPU 空闲时间、使用情况等)。

关于c# - 即将失败的暗示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3112053/

相关文章:

c# - 如何在Unity中调用Firebase电子邮件登录任务中的函数?

c# - 如何随机生成1000个6位数字序列

c# - 从 C# 调用 Oracle 中的存储过程

C# EF 5.0 向 MySQL 数据库添加百万条记录需要数小时

c# - C#中的类实例通信

asp.net - 为什么在回发时OnLoad/CreateChildControls顺序会更改?

jquery - Asp文件上传控件是否有文件

c# - ASP .Net MapRequestHandler 慢

c# - Signalr/Hub 未在 IIS 7 中加载但在 Visual Studio 中正常工作

iis - 使用 global.asax 有哪些替代方法?