【问题标题】:Getting memory usage of process from .Net Core app on Linux machine从 Linux 机器上的 .Net Core 应用程序获取进程的内存使用情况
【发布时间】:2021-07-29 03:24:32
【问题描述】:

我正在尝试从 .netcore 应用程序获取当前进程的总内存使用量。

System.Diagnostics.Process.GetCurrentProcess().PagedMemorySize64 在 Windows 上运行良好,但在 Linux 机器上返回零。我也试过System.Diagnostics.PerformanceCounter package 来获取值,但它抛出平台不支持异常。

我使用 .netcore 3.1 作为框架。

【问题讨论】:

  • 如果您有可能升级到 .NET 5.0,那么有一个新的GC.GetGCMemoryInfo() 方法可以获取有关当前内存使用情况的大量有趣数据。但遗憾的是,它实际上只是 .NET 5。

标签: c# linux .net-core operating-system .net-core-3.1


【解决方案1】:

通过关注getting CPU and memory usage of a docker container 的答案。我只是在/sys/fs/cgroup/memory/memory.usage_in_bytes 位置读取文件并将其解析为 int 变量。

【讨论】:

    猜你喜欢
    • 2015-03-11
    • 2010-10-24
    • 2013-05-11
    • 1970-01-01
    • 2013-07-19
    • 1970-01-01
    • 2010-12-25
    • 1970-01-01
    • 2012-04-03
    相关资源
    最近更新 更多