请教关于Sql server 2008 r22008R2是如何对物理内存分配使用的

您所在的位置: &
2.1.1 物理内存(1)
2.1.1 物理内存(1)
清华大学出版社
《SQl Server 2008内核剖析与故障排除》第2章理解内存,本章解释了不同的系统体系结构有什么不同,可以配置哪些组件,Microsoft的最佳实践是怎样的,以及最重要的,即最初是如何做出这些决策的。本节为大家介绍物理内存。
2.1.1 物理内存(1)
物理内存指的是系统内部的易失性(volatile)存储空间,通常易失性存储空间指的就是RAM(Random Access Memory,随机存储器)。由于RAM由CPU直接寻址,因此RAM通常也称为主存储器(primary storage)、主内存(main memory)或系统内存(system memory)。RAM是一般程序能直接使用的最快的存储器,但是RAM是易失的,也就是说在计算机重启之后RAM中存储的内容都会丢失。比起非易失性存储器,例如硬盘,RAM也很昂贵且容量有限。
例如Windows Server 2008企业版和数据中心版最大可以支持2TB的RAM,但是购买一台这么大内存的服务器需要耗费数百万美元,而一块1TB的硬盘则不到100美元。不需要太多这种硬盘,就可以组成很经济的数十TB级别的存储空间。因此,服务器都使用硬盘和RAM的组合,利用磁盘存储数据,并将需要使用的数据装载到RAM中以更快的速度进行操作。
如果对硬盘和内存的吞吐率进行比较,可以发现现在主流的RAM模块的传输峰值可以达到每秒5GB。而在本书写作时能找到的最快的硬盘声称“持续数据传输速率达到164MB每秒的空前性能”。这个最快硬盘的速度也只有RAM模块的3.2%。
本章不会深入描述各种不同类型的RAM,但是会站在一个较高的层次上讲解和RAM有关的缩写符和关键名词。这些概念非常有用(或至少也很有趣),特别是在需要为运行Microsoft SQL Server的服务器的新硬件设计详细配置的时候非常有用。
1. SIMM和DIMM
单列直插式内存模块(Single Inline Memory Module,SIMM)和双列直插式内存模块(Dual Inline Memory Module,DIMM)是RAM的两种物理实现。SIMM在20世纪90年代中期被逐步淘汰,取而代之的是更高效的DIMM,DIMM也是现今市场上占主导地位的内存类型。购买内存模块的时候买到的那个插入主板的硬件就是一个DIMM。
动态随机存储器(Dynamic RAM,DRAM)是RAM的一种类型,DRAM将数据存储在电容中,因此需要周期性地“充电”以防止数据丢失。因为有周期性的刷新,这种RAM才称为是动态的,与静态随机存储器(Static RAM,SRAM)相对应。SRAM不需要刷新,因此更快,且更节能,但是价格比DRAM昂贵许多。因此,主流的计算机内存都采用DRAM,而SRAM则常嵌入在需要少量使用内存的地方,例如CPU的高速缓存。
构建于DRAM技术之上,同步DRAM(synchronous DRAM,SDRAM)与计算机的系统总线同步,因此可以支持更复杂的使用方法,例如流水线操作。通过流水线操作,指令可以队列化处理,从而得到更高的执行效率。
4. DDR SDRAM
双倍数据传输率同步DRAM(Double-data-rate SDRAM,DDR SDRAM)可以在一个指令内将标准的SDRAM读写的连续数据量翻倍。DDR2能将DDR传输的数据率翻倍,而DDR3将DDR2传输的数据率翻倍,因此DDR3在单位时间内连续读写的数据量是DDR1的4倍。
当前DDR2仍然是服务器和桌面计算机市场的常见选择。然而,随着基于Intel最新微架构(代号Nehalem)的处理器的普及,DDR3会很快成为事实上的标准的,因为Nehalem只支持DDR3。第5章会对Nehalem架构做更多介绍。
5. 双通道内存
双通道(Dual-channel)架构是内存控制器使用的一种技术,在支持双通道的主板上可以将标准的内存模块以“配对”的形式安装在一起,以提高内存控制器的带宽。
CPU是计算机中最快的组件,如果CPU总线的速度比内存总线的速度要快,则系统在内存控制器上就会产生瓶颈。双通道内存技术可以在一定程度上缓解这种压力。
Intel的Nehalem架构的处理器将内存控制器集成在CPU内部,因此在这种架构下内存模块直接连接到CPU。Nehalem使用了三通道内存技术。
6. 带寄存器的内存模块和不带缓冲的内存模块
带寄存器的内存模块(registered memory module)在模块上带有寄存器,由于寄存器的作用,这种内存模块可以降低内存控制器上的电力负载,因此采用这种内存模块的服务器可以在安装了大量内存模块的情况下仍然保持稳定性。带寄存器的内存模块要求主板提供支持。这种内存模块具有可以支持大量内存的特性,可以发现许多要求大量内存的服务器都使用这种内存模块。然而,由于这种模块的成本更高,而且性能上会有损失,因此一般只有在以可扩展性和稳定性作为首要要求的服务器或工作站上才要求使用这种内存模块。
购买台式计算机的内存模块时,可能会发现这些模块列在“非缓冲(unbuffered)”的一类,这只是说明这种内存模块不带有寄存器。
7. 纠错码(Error-Correcting Code,ECC)内存
在各种干扰中,内存最容易受到背景辐射的伤害,在受到辐射的情况下,内存中存储的位值可能会发生变化。发生这种错误的几率非常低;研究表明发生这种错误的几率为每个月每千兆字节中有一位发生错误。尽管这种错误导致的后果最严重可能会使整个计算机崩溃,但是在执行关键操作的时候发生这种错误(仅有一位的值改变)的概率极低。
桌面系统通常不会全天候地运行,因此恰好正在使用的那部分内存发生这种故障的概率极低。再加上使用ECC带来的额外开销,因此在桌面计算机市场,ECC内存和支持ECC内存的主板并不常见。而对于常年运行的服务器来说,这种风险就更大而且后果更严重,因此大部分服务器都支持甚至要求使用ECC内存模块。
8. 全缓冲DIMM(Fully Buffered DIMM,FB-DIMM)
全缓冲DIMM在内存控制器和内存模块之间添加了一个高级内存缓冲(advanced memory buffer,AMB),这是最近比较流行的基于DDR2的技术。内存控制器不直接向内存模块写数据,而是向AMB写数据,这样内存的带宽更大,且具有更好的错误纠正能力(开销稍小),而带来的缺点是内存请求的延迟增大。
FB-DIMM需要额外的电源来运行AMB,因此发热量也更大。因此有人怀疑这种技术的前途,不过尽管多年来人们并不看好这种技术,FB-DIMM仍然是Intel平台的服务器的主流平台。
9. 最大支持的物理内存
表2-1列出了各个版本的SQL Server 2008在Windows Server 2008上支持的最大物理内存;表2-2列出了SQL Server 2008在Windows Server 2003 R2上支持的最大物理内存。
表2-1 SQL Server 2008在各个版本的Windows Server 2008上支持的最大物理内存
注1:这些数据表示操作系统支持的最大内存。标记的地方表明SQL Server支持操作系统的最大内存,也保证了随着操作系统版本升级增大内存的支持,SQL Server也立即可以支持同样的最大内存。
【责任编辑: TEL:(010)】&&&&&&
关于&&&&&&的更多文章
《android内核剖析》内容分别从基础、内核、系统、编译以及硬件
本书描述了黑客用默默无闻的行动为数字世界照亮了一条道路的故事。
这本书是写给程序员和项目经理的。作者结合自身的丰富
本书全面讲解WPF的实际工作原理,是一本WPF权威著作。
SQL Server 2012附带了强大的Analysis Services新功能
Linux是一款开源的操作系统,得到了广大开发者的青睐。掌握Linux系统的指令及其用法是学习Linux系统的基础。本书详细地介绍了常
51CTO旗下网站

我要回帖

更多关于 winserver 2008 r2 的文章

 

随机推荐