如何以编程方式测量Azure Web/Worker角色的内存使用情况?

4
我希望记录一些托管在Windows Azure实例中的Web/Worker角色的内存使用情况。
有没有一种编程方式可以检查当前使用的内存,以便我可以将该值保存在某个地方以备后用?
我找到的唯一信息是获取当前线程,然后调用一个方法来返回堆内存使用情况。但是当存在一些异步调用时,我不认为这对我的问题有太大帮助。
2个回答

3
Azure诊断是开始的好地方。您可以添加任何想要的性能计数器:内存消耗,CPU使用率等。
1. 在Azure项目中右键单击您的角色,然后转到“属性”。 2. 在“配置”下,您将看到“诊断”。 3. 选择“启用诊断”并选择“自定义计划” -> “编辑” 4. 在性能计数器下选择您需要的内容(请注意,它必须是计数器的英文名称,在您的计算机上可能有不同的语言)
这些计数器将保存在表存储中,表名为“WADPerformanceCounters”。
此文章也可能有所帮助:http://msdn.microsoft.com/en-us/library/windowsazure/dn186185.aspx

1
这是我个人认为不错的方法,因为它不需要操纵代码。 我仔细研究了一下,似乎有人认为它有点慢。但是一个不太完美的解决方案总比没有其他解决方案要好。 感谢您的信息! - ThisWillDoIt

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!";
        }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接