服务器可以有“太多”的内存? 有一个最佳的内存水平,或者更好总是更好?

最近,我有我们的服务器pipe理员告诉我,我们订购了140GB内存的新服务器具有“太多”内存,并且服务器开始遭受超过80GB的损失,因为这是“最佳数量”。 他抽烟了,还是真的有更多的内存比一定水平的性能问题? 我可以看到这个观点 – 更多的是操作系统来pipe理等等,但是这是合理的,还是额外的呼吸空间会超过pipe理层?

我不是问“我会全部使用它”(这是一个有数十个实例的SQL Server集群,所以我怀疑我会这么做,但这与我的问题无关),但是是否太多会导致问题。 我总是认为越多越好,但也许有一个限制。

有几个门槛“太多”,虽然他们是特殊情况。

在32位的地方,PAE可以让你通过4GB线访问内存。 32位机器的理论最大值是64GB RAM,这反映了额外的4位PAE给出了存储器地址。 64GB小于80GB。

从那里我们得到处理器的具体问题。 64位处理器目前在内部使用40位和48位来寻址内存,其最大内存限制在1TB到256TB之间。 两种方式都超过80GB。

除非他有明确的理由说明为什么SQL Server无法处理那么多的内存,否则基本的操作系统和硬件都可以做到这一点,而不用浪费大量的时间。

他正在抽烟 – 如果他说了4GB,而你正在使用32位操作系统,那么他可能只有一半的争论,但不是,80GB只是一个数字,他被抽出空气。

如果内存不是“明智地购买”,显然存在一些问题,例如较大的DIMM通常成本是半尺寸版本的两倍(即16GB DIMM多于两倍8GB DIMM),并且可以减慢机器速度相当一种方式,不使用正确的数量/大小/布局的内存,但它仍然是非常快的。 当然,越多的记忆越多,但是我相信你会对这个系统感到满意。

把它变得极端,并说你有内存的PB:系统(CPU)不会更难以pipe理内存映射。 操作系统应该足够聪明,可以使用这个内存进行磁盘caching,而且还有足够的空间来pipe理应用程序空间(内存和代码)。 在RAM和虚拟空间中映射内存将消耗相同数量的CPU周期。

最终唯一遭受太多记忆的事情就是浪费能源。

我很抱歉,但其中大部分答案都是不正确的。 实际上,更多的RAM运行速度会更慢。 对于拥有18个插槽的惠普服务器,比如G7,填满所有18个插槽将导致内存以800而不是1333运行。请参阅此处的某些规格:

http://www8.hp.com/h20195/v2/GetHTML.aspx?docname=c04286665

(当然,点击记忆。)

典型的内存configuration有12个插槽填充将是48G(所有4s),72G(8s和4s),96G(全部8s)等…当你说“140G”我假设你真的意思是144G,这很可能是8G全部18个插槽。 这实际上会减慢你的速度。

现在,从我所做的研究看来,较慢的内存速度并不会影响很多应用程序,但有一件事已知会影响到数据库应用程序。 在这种情况下,你说这是一个SQL集群所以是的,因为太多的内存可能会减慢你的速度。

你所说的服务器pipe理员可能从实际的经验中知道这一点,而不知道确切的技术原因。

希望有所帮助,

-Jody-

假设CPU实际上可以使用RAM(这不是sysadmin1138提到的特殊阈值之一),更多的RAM不会影响性能。

但是,由于预算有限,实际上可能存在一些“最佳”的RAM数量 – 如果您在RAM上花费更多的钱,那么CPU(s),硬盘驱动器和IO的钱就less了。 如果RAM之外的其他东西是瓶颈,那么添加更多的RAM并不能提高性能(尽pipe它也不会影响性能),而这可能会导致开销瓶颈。

(我忽略了为服务器供电的电力成本以及为服务器降温的电力成本 – 这些成本对“优化”数据中心硬件select有很大的影响)。

我发现至less有一种情况,你可以有太多的内存。 无可否认,这是一个软件限制,而不是硬件限制。

Java应用程序(如ElasticSearch)由于压缩的对象偏移量而使用超过32GB的ram时会受到影响。

附加信息:

http://www.elasticsearch.org/guide/en/elasticsearch/guide/current/heap-sizing.html