【问题标题】:Can an Azure web site/app determine its instance's CPU/memory usage?Azure 网站/应用程序能否确定其实例的 CPU/内存使用情况?
【发布时间】:2015-06-03 19:52:03
【问题描述】:

我需要我的实例记录它们的 cpu/mem 使用情况(最好占总数的百分比),但我在 Azure 网站上尝试的所有操作都不起作用。它会中断启动并导致 502 错误。到目前为止,我已经尝试过 ManagementObjectSearcher 和 PerformanceCounter。这些工作可以在本地找到,但在部署到 Azure 时不会。这个功能只是被禁用了吗? WebJob 会不会有更好的运气?

如果无法在网站实例本身上执行此操作,我能想到的唯一选择是制作一个 PowerShell 脚本或其他可以通过 Azure API 查找它并将其存储在实例的共享位置的应用程序随时查看...

【问题讨论】:

    标签: asp.net-mvc azure azure-web-app-service


    【解决方案1】:

    您无法访问 Azure Webapps 中的性能计数器数据和类似内容。如果您真的想在网站代码本身中执行此操作,您应该能够使用 System.Diagnostics.Process 类并检索进程列表并找出 w3wp 进程并获取其 CPU 和内存使用情况。

    <%@ Page language="cs" %>
    <%@ Import Namespace="System.Diagnostics" %>
    <%
    foreach (Process p in  System.Diagnostics.Process.GetProcesses())
    {
    Response.Write ("<br/>" + p.ProcessName + "\t" + p.Id + "\t" +    p.PrivateMemorySize+ "\t" + "\t" );
    }
    

    %>

    最简单的做法是编写一个 powershell 脚本并将其作为 webjob 运行。在你的 webjob 中这样的 powershell 代码可能会为你提供你正在寻找的信息

    gps|where {$_.name -eq 'w3wp' }|select PrivateMemorySize, CPU, Id
    

    希望这会有所帮助...

    【讨论】:

      猜你喜欢
      • 2021-05-03
      • 1970-01-01
      • 2012-04-03
      • 1970-01-01
      • 2011-06-30
      • 1970-01-01
      • 2016-04-20
      • 1970-01-01
      • 2015-05-27
      相关资源
      最近更新 更多