关于我们的产品(内置于 .NET-Web)与硬件 RAM 消耗的内存,我有一个独特的情况。
为其部署产品的客户在 PRODUCTION 环境中具有以下配置。
硬件:
- [a] 双 XEON X5570 2.93GHZ 四核 CPU,配备 3.33GHZ TURBO、6.4GT/s QPI 和 8MB 缓存 [b] 144GB RAM - 内存 [c] 8x 600GB 10K 2.5" SAS HDD [d] SMART ARRAY P410i RAID 控制器电池和 256MB 缓存 [e] 4x 千兆以太网 [f] 双 460W 电源
软件(一体机):
- [a] Windows Server 2012 - 64 位 [b] .NET Framework 4.5 [c] SQL Server
2012企业服务器版
现在仅仅因为 144GB-RAM 和大容量硬盘,我们的客户期望应用程序应该“超快”运行,从而表现更好。
客户是一个完全非 IT 的组织。它已经向他们解释了,无论 RAM/HDD 增加多高,Windows-OS 最终都会限制它可以分配给程序的内存量(通过 .NET 框架和 SQL 引擎),因此给定的 .NET 程序将在一个连续的、平坦的、未分段的内存区域中“执行”。
他们无法消化这个论点。所以我在谷歌上搜索是否有任何技术文章、博客或任何类似的东西可以解释这些行,但没有多大成功。基本上需要通过一些网络文章参考传达的是:无论您使硬件变得更好,分配给执行程序的内存量都受操作系统的控制和限制。
是否有任何 MSDN 链接或 Red-Gate-profiler 分析提供了一些数字来建议由 Windows-64bit-Server-2012 分配给给定 .NET 程序的执行(甚至是 SQL-2012-store-程序的执行)。
例如——这个链接http://duartes.org/gustavo/blog/post/anatomy-of-a-program-in-memory对 32 位操作系统说以下内容。 “多任务操作系统中的每个进程都在自己的内存沙箱中运行。这个沙箱是虚拟地址空间,在 32 位模式下始终是 4GB 的内存地址块。”
我正在为 64 位 Windows-SERVER-2012 操作系统寻找类似的东西,作为博客/msdn 参考,如果那篇文章从 .NET-Framework-CLR 的角度讲得更多,那将是“铆钉”。 ..!!!