2.2 规划内存子系统

2.2  规划内存子系统

2.2.1  内存寻址空间

  X86 架构的处理器使用32位地址总线,内存寻址空间达到4GB(即2的32次方)。在32位操作系统中,2GB的内存保留给操作系统使用;另外2GB的内存被专用于进程,由应用程序使用。

  Windows Server 2003 可以在 Boot.ini 文件中使用“/3GB”选项,使保留给操作系统的内存缩减到1GB,从而将接近3GB的内存用于应用程序的进程。

  X64 处理器理论上可以使用64位地址总线,从而使理论上的内存寻址空间达到16EB(即2的64次方)。目前的硬件支持44位寻址(即16TB),但 Windows Server 2008 仅支持 64GB 内存,Windows Server 2012最大支持 4TB 内存。

提示:

字节的计量单位是2的次方,而不是10的整数倍数。

1 EB = 1024 PB (2的60次方)             1GB = 1024 MB (2的30次方)

1 PB = 1024 TB (2的50次方)             1MB = 1024 KB (2的20次方)

1 TB =1024 GB (2的40次方)             1KB = 1024 字节 (2的10次方)

2.2.2  虚拟内存

  虚拟内存实际上是使用一部分磁盘空间来充当内存使用。当物理内存耗尽时,Windows 就会自动调用虚拟内存,以缓解内存紧张。位于磁盘上的虚拟内存文件被称为“分页文件”,将物理内存中的数据页移入分页文件可释放物理内存空间。一般而言,若物理内存匮乏,则可尝试通过增加虚拟内存进行补偿。但是,物理内存的存取速度远远超过磁盘存取速度,因而增加物理内存是最佳选择。

  虚拟内存在硬盘上其实就是一个硕大无比的文件,文件名是PageFile.sys,通常状态下是隐藏的。

2.2.3  PAE

  X86 架构的处理器为了能够使用4GB以上内存,在32位的处理器上增加了4根额外的地址线,从而使内存寻址空间达到64GB(即2的36次方)。一般的应用软件可以继续使用地址为32位的指令,通过地址空间映射从而访问到64GB的物理内存。

  32位的 Windows 需要在启动选项中启用 PAE(Physical Address Extension,物理地址扩展),才可以使用4GB以上内存。

  对于32位的 Windows Server 2003,在 Boot.ini 文件中添加“/PAE”选项,重启生效后即可访问高达64GB的物理内存。

  对于32位的 Windows Server 2008,由于 boot.ini 文件已经被 BCD(Boot Configuration Data,启动配置数据)文件所代替,可以使用命令行工具 bcdedit.exe 来编辑 BCD 文件。运行此命令需要本机管理员的权限。

bcdedit /set pae forceenable

提示:

  “/3GB”参数必须放在“/PAE”之后。

  通过“/3GB”参数压缩了核心内存的空间,同进也压缩了其中 Windows 用于管理物理内存的表,因此,“/3GB”方式下最大只能管理16GB的物理内存。如果可用的物理内存超过16GB,要确保 boot.ini 文件中没有“/3GB”参数。

2.2.4  AWE

  操作系统启用了 PAE,实现了最多64GB内存空间。为了使32位操作系统上的应用程序访问 4GB 以上的物理内存,还需要为这些应用程序启用 AWE(Address Windowing Extensions,地址窗口化扩展)插件。

  在32位操作系统中,由于应用程序的可用内存太少,Windows 策略“锁定内存页”选项默认关闭。此策略将确定哪些帐户可以使用进程将数据保留在物理内存中,从而阻止系统将数据分页到磁盘的虚拟内存中。

  如果 SQL Server 已经启用了 AWE,为了提升 SQL Server 的性能,需要阻止进程将数据分页转存到磁盘的虚拟内存中。

  为了启用“锁定内存页”选项,需要使用 Windows 组策略编辑工具,为 SQL Server 使用的启动帐户启用此策略。必须是系统管理员才能编辑此策略。

◆在组策略编辑工具中,依次展开“计算机配置”、“Windows 设置”、“安全设置”、“本地策略”、“用户权限分配”节点。在右侧的细节窗格中找到“将页锁定在内存”。这个策略的名称在不同版本的 Windows 中可能略有差异。

◆为此策略添加有权运行 sqlservr.exe 的帐户。

2.2.5  规划可用的内存

  在 X86 平台中,4GB 以上的内存空间并不是直接寻址,因此使用这部分内存会受到一些限制,性能也会比 X64 架构有较大的差距。如果生产环境的 SQL Server 对内存需求很大,应当尽量在64位的Windows 操作系统上安装64位的 SQL Server。

  SQL Server 2012 及后续版本使用了新的内存管理机制,所以不支持 AWE。

  当一台计算机上安装了多个 SQL Server 实例时,建议为每个实例设置最大内存和最小内存选项。

  在安装 SQL Server 时,安装程序会检查当前的内存配置是否满足最低的要求。如果不满足最低要求,安装程序将向用户发出警告但不会阻止安装程序运行。下表列出了 X86 和 X64 平台上 SQL Server 的最低内存要求。

产品 Express 版本 Express with Advanced Services 所有其他版本
SQL Server 2005 192 MB 512 MB 512 MB
SQL Server 2008 256 MB 512 MB 512 MB
SQL Server 2008 R2 256 MB 512 MB 1 GB
SQL Server 2012 512 MB 512 MB 1 GB
SQL Server 2014 512 MB 512 MB 1 GB
时间: 2024-08-19 06:55:52

2.2 规划内存子系统的相关文章

2.1 规划处理器子系统

2.1  规划处理器子系统 处理器(Processor)是计算机的运算核心和控制核心.常用的个人计算机和服务器使用的中央处理器(Central Processing Unit,简称CPU)是一种微处理器. 2.1.1  X86与X64处理器 计算机在最底层执行的是机器指令,根据指令集的不同可以将处理器划分为不同的平台.可以运行SQL Server 的处理器平台主要有 X86.X64 和 IA64. X86 平台兼容 Intel 的 i386 32 位指令集,数值被送进 32 位寄存器进行相加运算

Linux内存子系统及常用调优参数

内存子系统及常用调优参数 内存子系统组件 slab  allocator buddy system kswapd pdflush mmu 虚拟化环境: PA(进程地址)-->HA(虚拟机地址)-->MA(物理机地址) 虚拟机转换:PA-->HA guestOS虚拟机内核,OS物理机内核 shadow PT Memory: TLB:提升性能 HugePages 内存大页面 [[email protected] domain1]# cat /proc/meminfo |grep -i  Hu

AVR开发 Arduino方法(六) 内存子系统

Arduino UNO R3主处理器ATMega328P的芯片内部拥有3种存储器:数据存储器,程序存储器和电可擦写可编程存储器:它们各自有不同的用途. 1. 数据存储器 数据存储器是一块2KB大小的静态随机存储器(SRAM).其中一部分空间分配给了通用寄存器和I/O寄存器,其余部分一般用于存储全局变量,堆栈数据和支持动态内存分配.它的存取速度快,但掉电后数据会丢失. 2. 程序存储器 程序存储器是一块32KB大小的闪存(Flash),其中0.5KB用于引导程序.它可以多次擦写,掉电后数据不会丢失

目录: 第2章 规划SQL Server 2014安装

第2章  规划SQL Server 2014安装 目录 2.1 规划处理器子系统 http://mssqlmct.blog.51cto.com/9951484/1616611 2.2 规划内存子系统 2.3 规划I/O子系统 2.4 规划网络与通信协议 2.5 规划软件系统 2.6 规划虚拟化 2.7 规划高可用性

揭秘12306技术改造(三):传统框架云化迁移到内存数据平台

摘要:此篇文章列举不同类型的系统改造迁移到云平台方案,从改造思路探讨,系统框架设计和项目实施的整个迁移过程,供大家参考和交流. 注:本文首发于CSDN,转载请标明出处. [编者按]在年前的「技术揭秘12306改造」专题中,负责12306改造的技术架构师刘云程从技术的角度.用科学论证的方式说明 12306是如何实现高流量高并发的关键技术,以及深入探讨了12306两地三中心混合云架构,今天,他继续为大家带来第三篇:传统框架云化迁移到内存数据平台. 以下为正文>> 摘要 12306混合云成功案例给予

内存屏障

原文地址:http://ifeve.com/memory-barriers-or-fences/ 本文我将和大家讨论并发编程中最基础的一项技术:内存屏障或内存栅栏,也就是让一个CPU处理单元中的内存状态对其它处理单元可见的一项技术. CPU使用了很多优化技术来实现一个目标:CPU执行单元的速度要远超主存访问速度.在上一篇文章 “Write Combing (合并写)”中我已经介绍了其中的一项技术.CPU避免内存访问延迟最常见的技术是将指令管道化,然后尽量重排这些管道的执行以最大化利用缓存,从而把

【转】CPU与内存的那些事

下面是网上看到的一些关于内存和CPU方面的一些很不错的文章. 整理如下: 转: CPU的等待有多久? 原文标题:What Your Computer Does While You Wait 原文地址:http://duartes.org/gustavo/blog/ [注:本人水平有限,只好挑一些国外高手的精彩文章翻译一下.一来自己复习,二来与大家分享.] 本文以一个现代的.实际的个人电脑为对象,分析其中CPU(Intel Core 2 Duo 3.0GHz)以及各类子系统的运行速度——延迟和数据

每个程序员都应该了解的内存知识

每个程序员都应该了解的内存知识 英文原文:lwn.net,翻译:开源中国 [编辑的话: Ulrich Drepper最近问我们,是不是有兴趣发表一篇他写的内存方面的长文.我们不用看太多就已经知道,LWN的读者们会喜欢这篇文章的.内存的使用常常是软件性能的决定性因子,而如何避免内存瓶颈的好文章却不好找.这篇文章应该会有所帮助. 他的原文很长,超过100页.我们把它分成了7篇,每隔一到两周发表一篇.7篇发完后,Ulrich会把全文发出来. 对原文重新格式化是个很有挑战性的工作,但愿结果会不错吧.为了

CPU与内存互联的架构演变

随着计算机中CPU核数目的增加,传统的UMA(unifonn memory access)架构由于对关键硬件(如中央内存控制器)的竞争加剧出现了性能上的瓶颈,即扩展性不强.而NUMA架构则以其良好的可扩展性,逐渐成为多核系统的主流架构.本节主要介绍一下目前三大主流的架构体系. 在传统的PC机上我们的CPU和内存是这样互联的: CPU和内存之间的交互,中间通过北桥芯片进行转发和交互,如图,途中显示了一个CPU的情况下和内存的连接架构图. 在最初的时候,我们的电脑都单颗CPU的,随着我们工艺的进步和