对于我们的产品(构建于.NET-Web中)与硬件-RAM所消耗的内存而言,我有一个独特的情况。
正在为其部署产品的客户在生产环境上具有以下配置。
硬件:
软件(全部放在一个方框内):
2012年企业服务器版
现在,仅仅因为有了144 of的内存和高容量的HDD,我们的客户就期望应用程序能够运行“超级快”,从而表现得更好。
客户是一个完全非IT组织。它必须向他们解释,无论RAM/HDD有多高,Windows最终都会限制它能分配多少内存给一个程序(通过.NET框架和SQL-Engine),这样一个给定的.NET程序就可以在一个很好的连续的、平坦的、未分割的内存区域“执行”。
他们无法理解这一论点。所以,我在谷歌上搜索了一下,是否有任何科技文章、博客或其他类似的东西可以解释这些内容,但没有取得多大的成功。基本上,需要通过一些web文章引用来传达的内容是:无论您的硬件有多好,分配给一个执行程序的内存量都是受OS控制和限制的。
是否有任何MSDN链接或红色门剖析器分析,给出一些数字来表示由Windows-64位服务器-2012分配给给定.NET程序执行的maXimum内存(甚至是SQL2012存储过程的执行)。
例如--这个链接http://duartes.org/gustavo/blog/post/anatomy-of-a-program-in-memory表示32位操作系统的如下内容.多任务操作系统中的每个进程都运行在自己的内存沙箱中。这个沙箱是虚拟地址空间,在32位模式下,它总是一个4GB的内存地址块。
我正在寻找类似的东西,作为博客/msdn的参考,一个64位的Windows服务器-2012操作系统,如果这篇文章更多地从.NET框架-CLR的角度,那将是“审查”.!
发布于 2013-08-16 17:14:23
我也遇到了类似的问题,向客户解释为什么当我们添加一个辅助CPU和2倍多的RAM时,它的数据库运行速度不能快2倍。
结束讨论的论点是:当2倍多的用户登录并在系统上工作时,我现在不会放慢速度。
我还知道,例如,本机navision比sql版本运行得更快.在某种程度上。但是有更多的用户在系统上工作(30-50+)。本机navision上的SQL通过不减速而获胜。
还检查您的SQL server内存设置。我尝试给自己分配一个固定的内存到SQL,例如,在总数14 to中的10 to。无论您在一段时间后分配了多少,如果应该吃掉所有的东西:)在任务管理器中向他们显示它正在使用它:)
如果有些东西在SQL上运行缓慢,请检查查询并进行一些数据库优化。也许更好的计划索引将完成这一工作?
https://stackoverflow.com/questions/17212930
复制相似问题