我们目前正在为预期的大量负载准备 Azure 角色(标准 Web 角色),我们需要知道当前设置消耗了多少内存。为了实现这一点,我们使用负载测试,同时使用GC.GetTotalMemory
.
页面http://technet.microsoft.com/en-us/cloud/gg663909.aspx列出了Compute Instance Guaranteed Memory
每个实例大小(例如,0.768 GB
对于 Extra-Small Instance 和3.5 GB
Medium Instance)。
的值是否GC.GetTotalMemory
与这些列表中的值相当?换句话说,如果GC.GetTotalMemory
显着低于列出的限制,我们能否确定不会由于内存交换而导致任何突然的性能损失?
如果我们达到限制,我们的假设是否正确,即会有一些内存交换(将内存内容写入虚拟硬盘),还是会产生更严重的影响,例如重复的 App Pool 回收?
(最后一个问题出现了,因为如果您达到某些内存限制,大多数共享主机会回收您的应用程序池,但坦率地说,我们不希望 Windows Azure 有这样的事情)