c# - 如何通过 C# 代码获取 Kentico 的内存统计信息?
问题描述
背景
当用户访问我的 Kentico 网站的几页时,我最近遇到了内存不足的异常。快进 - 我发现分配的内存(系统 > 常规)超过 2 GB!然后我去调试>清除缓存,然后注意到分配的内存大约在 400 MB 左右(呸..)。现在,当用户访问该页面时,它可以正常工作而不会出现任何内存不足的异常。
问题
有没有办法通过代码(最好是 C#)获取这些内存统计信息?我正在考虑能够定期监视这些内存统计信息并在分配的内存过高时触发警报(从我的 C# 代码向 webhook 发送电子邮件/帖子)。
附加信息
- Kentico 版本 9.0.42,托管在 Azure 中,扩展到 2 个实例。
- 应用服务计划(在 Azure 中)的内存使用量大约为 50% - 这排除了在该级别设置警报。
谢谢!
解决方案
您可以使用SystemHelper类来获取统计信息和内存数据。它仍然主要依赖于 .NET Process及其属性。如果您使用的是 azure,则可以将上述信息与 PerformanceCounters 一起使用,将您自己的信息集记录到应用程序洞察中,并根据这些计数器创建您自己的警报。
推荐阅读
- azure - 为什么要使用托管标识?
- flutter - 在等待返回后颤振如何通过 setState 更新 UI?
- c# - 为 IDataReader 设置列类型
- java - 如何为 Android 应用程序中的所有线程设置 uncaugthExceptionHandler?崩溃仅在某些情况下发生
- mysql - 具有不同属性的相同项目的数据库设计
- c - 当函数调用过多时,静态变量是否会导致问题?
- c# - 如何设置在 c# 中以另一种形式创建的对象的属性?
- ios - 如何在 swift 5 中使用两个 UIDatePickers 获取并显示两次之间的差异
- excel - 使下拉列表永久化
- sql - 在外部查询中显示子查询的计数