首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Azure保证存储器

Azure保证存储器
EN

Stack Overflow用户
提问于 2012-10-16 12:36:01
回答 2查看 374关注 0票数 0

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

页面http://technet.microsoft.com/en-us/cloud/gg663909.aspx列出了每个实例大小的Compute Instance Guaranteed Memory (例如,超小型实例的0.768 GB和中型实例的3.5 GB )。

GC.GetTotalMemory 的值与这些列表中的值相当吗?,换句话说,如果GC.GetTotalMemory显着地低于列出的极限,我们能确保不会因为内存交换而突然失去性能吗?

如果我们达到了极限,我们的假设是否正确:会有一些内存交换(将内存内容写入虚拟硬盘)、,还是会有更严重的影响,比如重复App回收?

(最后一个问题是因为大多数共享主机都会在达到内存限制的情况下回收应用程序池,但坦率地说,我们并不期望Windows会出现类似的情况。)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-10-16 12:47:53

此方法将只按进程给出当前分配的字节。0.768 GB包括可供操作系统使用的内存,也可以有虚拟内存。

system.gc.gettotalmemory

要获得整个系统内存,可以使用:

添加对System.Management的引用。

代码语言:javascript
复制
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);
  }
}

代码的源代码

票数 1
EN

Stack Overflow用户

发布于 2012-10-16 16:10:30

为了回答您的最后一个问题,Windows将避开,分页将像在任何Windows服务器上一样发生。

IIS是否回收应用程序池可能取决于您的IIS设置,但这些设置在您的控制之下。(例如,如果要更改默认值,可以在启动任务中运行appcmd。)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12914881

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档