SQL Server 2008内存性能监控

内存相关概念

以下均是针对Window 32位系统环境下,64位的不在下面描述情况下。

用户模式和内核模式(user mode& kernel mode)

为了防止用户程序访问并篡改操作系统的关键部分,Windows使用了2种处理器存取模式:用户模式和内核模式。顾名思义,内核模式是给操作系统核心代码和基本驱动用的,用户模式给用户应用程序。在内核模式下程序可以访问所有的内存和硬件,并使用所有的处理器指令。操作系统程序比用户程序有更高的权限,使得系统设计者可以确保用户程序不会意外的破坏系统的稳定性。

物理内存(Physical Memory)

即实际购买的内存的大小,内存条上的容量。CPU的地址线可以直接进行寻址的内存空间大小,在32位操作系统平台上,CPU的最大寻址空间为4GB,也即可以支持最大4G的物理内存空间。在32位操作系统上即便你购买的是64G内存,也只能说拥有4GB的物理内存空间

虚拟内存(Virtual Memory)

如果计算机缺少运行程序或操作所需的随机存储内存,则Windows使用虚拟内存进行补偿。虚拟内存将计算机的RAM和硬盘上的临时空间组合在一起,当RAM不足时,虚拟内存将数据从RAM移动到称为“分页文件”的空间中,将数据移入与移出分页文件可以释放RAM,以便完成工作。

虚拟地址空间(Virtual Address Space,简称VAS)

在Windows系统中,任何一个进程都被赋予了其自己的虚拟地址空间,该虚拟地址空间覆盖了一个相当大的范围,对于32位系统的虚拟地址空间范围从 0x00000000~0xffffffff(4GB)。Windows采用分页机制,将4G的地址空间分成固定大小的页,并且将虚拟地址中的每一页映射 到物理内存中。

在缺省的情况下虚拟地址空间中的低2G,即0x0000000~0x7FFFFFFFF是用户地址空间,而4G虚拟地址空间中的高2G即0x8000000~0xFFFFFFFF是分配给内核模式。实际上用户进程拥有的虚拟地址空间只有2GB。

虚拟内存管理器(Virtual Memory Manager)

虚拟内存管理器负责虚拟地址空间和物理内存的地址映射,如果缺乏足够内存,则需要使用到page file文件来保持临时数据也即虚拟内存,同时使用page table entry(PTE)来跟踪每一个地址映射关系。

到这里为止,64G的内存有60G都无法访问,岂不是浪费了,那怎么办?

/3GB和increaseUserVA

通过/3GB的方式,可以减少内核模式占用地址空间,从而增加SQL Server进程的地址空间。默认情况下,用户模式和内核模式各自占用2G寻址空间,3G选项可以使得SQL Server获得多1G的虚拟地址空间。

/3GB开关用法:

在Boot.ini文件中修改其中的段落即可:

或者使用bootcfg命令

在Windows Server 2008中可以运行BCDEdit命令,加以调整。

物理地址扩展PAE(Physical Address Extension)

物理地址扩展(PAE)是32位Intel CPU的一种扩展,这样可以在32位系统上支持最大64G的物理内存,即4GB以上物理内存允许将更多物理内存映射为应用程序的虚拟地址空间。

使用方式,在Boot.ini文件中修改其中的段落即可:

时间: 2024-11-01 20:04:58

SQL Server 2008内存性能监控的相关文章

SQL Server 2008 CPU性能监控

CPU性能诊断 CPU架构 目前的主流企业服务器基 本可以分为三类:SMP(Symmetric Multi Processing,对称多处理架构),NUMA(Non-Uniform Memory  Access,非一致存储访问架构)和MPP(Massive Parallel Processing,海量并行处理架构) SMP(Symmetric Multi Processing) SMP是非常常见的一种架构.在SMP模式下,多个处理器均对称的连接在系统内存上,所有处理器都以平等的代价访问系统内存.

SQL Server 2008的性能和可扩展性

1.导言 现今的公司需要易访问的和可用性好的商业数据,以便他们可以在全球市场中获得一席之地.与易访 问数据的这个需求相呼应的,关系数据库和分析数据库在规模方面继续发展,内嵌数据库和许多产品一起 出现,并且许多公司将服务器合并来减轻管理工作.当公司的数据环境在规模和复杂度方面持续发展的同 时他们必须维护最佳的性能. 这篇白皮书描述了SQL Server 2008的性能和扩展能力,并解释了你可以怎样使用这些功能来: · 使用可用于数据库引擎.分析服务.报表服务和集成服务的工具和功能来优化任何规模的数

查看sql server 2008中性能低下的语句

经常使用这个语句来查看性能低下的sql语句: SELECT creation_time  N'语句编译 时间'        ,last_execution_time  N'上次执行时间 '        ,total_physical_reads N'物理读取总次数'        ,total_logical_reads/execution_count N'每次逻辑读次数 '        ,total_logical_reads  N'逻辑读取总次数 '        ,total_log

同时查询一张表-sql server 2008 r2 出现死锁问题

问题描述 sql server 2008 r2 出现死锁问题 程序每3秒钟查询一次,跑一会会出现这种死锁的问题,求助各位大神. 解决方案 SQL Server 2008 R2 安装问题SQL Server 2008 R2 死锁监控SQL Server 2008 R2 安装过程 解决方案二: 死锁频繁出现基本上是程序写的有问题. 建议:查看引起死锁的进程信息 引入事务管理 解决方案三: 插入数据和删除数据都是独占锁,如果要大数据查询可以加 with (nolock) 来取消独占锁.大量数据插入和删

SQL Server 2008 到底需要使用哪些端口?_MsSql

下面就来介绍下SQL Server 2008中使用的端口有哪些: 首先,最常用最常见的就是1433端口.这个是数据库引擎的端口,如果我们要远程连接数据库引擎,那么就需要打开该端口.这个端口是可以修改的,在"SQL Server配置管理器"中切换到"XXX的协议"里面选择,TCP/IP协议属性中可以设置TCP端口.如图所示: SSIS要调用DCOM协议,所以在使用SSIS的时候需要打开135端口,而且这个端口是不能更改的.只有打开 TCP 端口 135 才能访问服务控

SQL Server 2008性能故障排查(一)——概论

原文:SQL Server 2008性能故障排查(一)--概论 备注:本人花了大量下班时间翻译,绝无抄袭,允许转载,但请注明出处.由于篇幅长,无法一篇博文全部说完,同时也没那么快全部翻译完,所以按章节发布.由于本人水平有限,翻译结果肯定存在问题,为了不造成误导,在每篇结尾处都附上原文,供大家参考,也希望能指出我的问题,以便改进.谢谢. 另外,本文写给稍微有经验的数据库开发人员或者DBA看,初学者可能会看不懂.在此请见谅 作者:Sunil Agarwal, Boris Baryshnikov, K

服务器-SQL Server 2008性能突降的问题

问题描述 SQL Server 2008性能突降的问题 ##服务器介绍: 部署在虚拟机上的SQL Server 2008,是从一个oracle库到另一个MS库的数据中转站,先将oracle库部分表的数据抽取到该库,再用生成视图的方式进行数据清洗,然后将视图数据抽到另一个MS库中,**两个MS库在同一服务器上**. ##问题描述: 前天发现,从oracle库抽取数据到该库的时间由原来的2个小时,延长到3个小时,而从该库到另一个MS库的数据抽取工作变得非常缓慢,以往1个半小时的抽取,延长到10个小时

SQL Server 2008性能故障排查(二)——CPU

原文:SQL Server 2008性能故障排查(二)--CPU 承接上一篇:SQL Server 2008性能故障排查(一)--概论 说明一下,CSDN的博客编辑非常不人性化,我在word里面都排好了版,贴上来就乱得不成样了.建议CSDN改进这部分.也请大家关注内容不要关注排版.同时在翻译的过程中本人也整理了一次思路,所以还似乎非常愿意翻译,虽然有点自娱自乐,但是分享给大家也是件好事 CPU 瓶颈:CPU瓶颈可能因为某个负载所需的硬件资源不足而引起.但是过多的CPU使用通常可以通过查询优化(特

SQL Server 2008性能故障排查(四)——TempDB

原文:SQL Server 2008性能故障排查(四)--TempDB 接着上一章:I/O TempDB:          TempDB是一个全局数据库,存储内部和用户对象还有零食表.对象.在SQLServer操作过程中产生的存储过程等数据.在一个SQLServer实例中,只有一个TempDB.所以容易成为性能和磁盘空间瓶颈.TempDB可能因为空间可用程度和过量的DDL和DML操作而变得超负荷.这可能导致不相关的应用运行缓慢甚至失败.          常见的TempDB问题如下: l  T