memory - Azure 保证内存

标签 memory azure

我们目前正在为预期的大量负载准备我们的 Azure 角色(标准 Web 角色),并且我们需要知道当前设置消耗了多少内存。为了实现这一目标,我们使用负载测试,同时使用 GC.GetTotalMemory 测量消耗的内存。

页面http://technet.microsoft.com/en-us/cloud/gg663909.aspx列出每个实例大小的计算实例保证内存(例如,超小型实例为 0.768 GB,中型实例为 3.5 GB )。

GC.GetTotalMemory 的值与这些列表中的值相当吗?换句话说,如果 GC.GetTotalMemory 保持显着增长低于列出的限制,我们能否确定不会因内存交换而导致性能突然下降?

如果我们达到限制,我们的假设是否正确,即将会发生一些内存交换(将内存内容写入虚拟硬盘),或者是否会产生更严重的影响,例如重复的应用程序池回收?

(出现最后一个问题是因为如果您达到内存限制,大多数共享托管商都会回收您的应用程序池,但坦率地说,我们不希望 Windows Azure 出现这样的情况)

最佳答案

此方法只会为您提供进程当前分配的字节。 0.768 GB 包括操作系统可用的内存,也可以有虚拟内存。

system.gc.gettotalmemory

要获取可以使用的总系统内存:

添加对 System.Management 的引用。

private static void DisplayTotalRam()
{
  string Query = "SELECT MaxCapacity FROM Win32_PhysicalMemoryArray";
  ManagementObjectSearcher searcher = new ManagementObjectSearcher(Query);
  foreach (ManagementObject WniPART in searcher.Get())
  {
    UInt32 SizeinKB = Convert.ToUInt32(WniPART.Properties["MaxCapacity"].Value);
    UInt32 SizeinMB = SizeinKB / 1024;
    UInt32 SizeinGB = SizeinMB / 1024;
    Console.WriteLine("Size in KB: {0}, Size in MB: {1}, Size in GB: {2}", SizeinKB, SizeinMB, SizeinGB);
  }
}

Source for code

关于memory - Azure 保证内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12914881/

相关文章:

azure - 如何启用从 Azure APIM 到具有专用终结点的应用服务的请求

.net 4 MemoryCache 泄漏?

python - 在 GPU 上运行时使用 TensorFlow 内存 : why does it look like not all memory is used?

azure - Terraform:将整个资源组移动到新的 Azure 订阅

azure - 事件中心——消费者横向扩展时如何防止重复处理

php - Azure devops - Release Pipeline 没有 PHP 7.2 for Runtime Stack 的选项,但 Azure App 服务有

c# - 使用 MSAL 获取 claim

python - 使用 Werkzeug/Flask 时如何测量 Web 请求的内存使用情况?

c++ - 类中的静态函数,内存将如何处理?

python - 限制 RAM : python crashes instead of MemoryError