如何以编程方式测量azure web / worker角色的内存使用情况?

时间:2014-03-25 08:48:41

标签: c# asp.net azure memory-management

我想记录一些托管在windows azure实例中的Web /辅助角色的内存使用情况。

有没有办法以编程方式检查当前使用的内存,以便我可以将此值保存到某个地方供以后使用?

我发现的唯一信息是获取当前线程,然后调用一个应该返回堆内存使用情况的方法。但我不认为这对我的问题有很大的帮助,特别是当有一些异步调用时。

2 个答案:

答案 0 :(得分:3)

Azure Diagnostics是一个很好的起点。您可以添加任何您喜欢的性能计数器:内存消耗,CPU使用率等。

  1. 在Azure项目中右键单击您的角色,然后转到“属性”。
  2. 在配置下,您将看到"诊断"
  3. 勾选"启用诊断"并选择"自定义计划" - > "编辑"
  4. 在Performance Counters下选择你想要的东西(请注意,如果你的机器上有不同的语言,它必须是计数器的英文名称)
  5. 这些计数器将保存在表名称" WADPerformanceCounters"

    下的表存储中

    enter image description here

    本文也可能有所帮助:http://msdn.microsoft.com/en-us/library/windowsazure/dn186185.aspx

答案 1 :(得分:0)

我正在使用c#,这似乎对我有用。 (简体): MS参考链接:link

        try
        {
            long bytes = GC.GetTotalMemory(false);

            return "RAM used: " + (bytes/1024/1024).ToString() + " MB";
        }
        catch (Exception ex)
        {
          return "No RAM info available!";
        }