0

关于我们的产品(内置于 .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 的角度讲得更多,那将是“铆钉”。 ..!!!

4

1 回答 1

0

我有类似的问题向客户解释为什么当我们添加辅助 CPU 和 2 倍更多 RAM 时其数据库的运行速度没有提高 2 倍。

结束讨论的论点:当有 2 倍以上的用户登录并在系统上工作时,我现在并没有放慢速度。

我也知道,例如本机 navision 比 sql 版本运行得更快……在某种程度上。但是更多用户在系统上工作(30-50+)。SQL 通过不放慢速度胜过本机导航。

还要检查您的 SQL 服务器内存设置。我尝试为自己分配固定数量的内存给 SQL,例如总共 14GB 的 10GB。无论你在一段时间后分配多少,如果应该吃掉所有东西:) 在任务管理器中显示它正在使用它:)

如果某些东西在 SQL 上运行缓慢 - 尝试检查查询并进行一些数据库优化。也许计划得更周密的索引可以完成这项工作?

于 2013-08-16T17:14:23.573 回答