【问题标题】:Get Cross Platform System Health ASP.Net Core获取跨平台系统健康 ASP.Net Core
【发布时间】:2019-06-05 08:12:04
【问题描述】:

我正在开发一个 ASP.Net Core MVC 应用程序,其中管理员例如我应该能够看到系统信息,例如:

  1. 当前进程的 CPU 使用率
  2. 总 CPU 使用率
  3. 可用的总系统内存
  4. 当前应用程序使用的总系统内存
  5. 系统内存使用总量
  6. 可用的总磁盘空间
  7. 使用的总磁盘空间

挖掘了几个小时后,我只找到了使用一些性能计数器或系统查询的解决方案。问题是它们中的大多数只能在 Windows 下工作,但我需要它们在 Linux 上工作,特别是 Ubuntu 18.10,才能正常工作。

【问题讨论】:

    标签: c# ubuntu asp.net-core health-monitoring


    【解决方案1】:

    您可以只执行 linux 命令行相关程序来收集这些信息。您甚至可以创建一个 shell 脚本,通过一次执行收集所有这些信息,并以您可以处理的格式返回它们。

    以下命令应该足以收集所有信息。

    • ps -aux:每个进程的 CPU 和内存消耗
    • free:整体内存消耗
    • df: 整体磁盘消耗

    【讨论】:

    • 在我看来,如果我每 5 秒执行一次这个脚本,这将对性能造成很大影响。
    • 嗯,你需要从某个地方收集信息。最有可能最基本的命令行程序具有最少的开销。您想要的 7 个信息应该可以通过ps -auxfreedf 实现。我怀疑这些命令有很大的性能损失。
    • 肯定会测试,一旦我可以验证所有内容,我会将其标记为答案。您应该将命令添加到您的答案中。
    猜你喜欢
    • 1970-01-01
    • 2017-06-09
    • 1970-01-01
    • 2017-04-03
    • 2010-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多