Azure网站/应用程序可以确定其实例的CPU /内存使用情况吗?

时间:2015-03-30 17:17:23

标签: asp.net-mvc azure azure-web-sites

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

我能想到的唯一选择是,如果在网站实例本身无法做到这一点,那就是创建一个PowerShell脚本或其他应用程序,可以通过Azure API查找它并将其存储在实例的共享位置快点抬头......

1 个答案:

答案 0 :(得分: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" );
}

%GT;

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

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

希望这会有所帮助...

相关问题