我需要我的实例记录他们的cpu / mem使用率(最好是总数的百分比),但我在Azure网站上尝试的所有内容都不起作用。它会中断启动并导致502错误。到目前为止,我已经尝试过ManagementObjectSearcher和PerformanceCounter。这些工作在本地查找,但在部署到Azure时则不会。此功能是否已禁用? WebJob会有更好的运气吗?
我能想到的唯一选择是,如果在网站实例本身无法做到这一点,那就是创建一个PowerShell脚本或其他应用程序,可以通过Azure API查找它并将其存储在实例的共享位置快点抬头......
答案 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
希望这会有所帮助...