当前位置: > 专业技术 >

专业技术

数据库AWE技术在非编网中的应用(2)

发布时间:2012-10-09 文章来源:苏州广电总台(宋力 祝晓羽)

3 Windows的内存管理机制
那为什么系统配备了8G的物理内存,而软件却用不上呢?这就源于Windows的内存管理机制了。
在默认情况下,32位的Windows用户进程会有4G的虚拟地址空间。其中2GB是给核心态留下的,剩下的2GB是用户态留下的,这两部分内存使用会严格分开。Windows不会因为其中某一块内存地址空间用尽而将另外一块空间让出。以前由于内存的价格过高,一般服务器配置的内存不是很多,超过4G的就更少了。随着硬件水平提高,内存的配置已不再局限,上百GB内存的服务器也不再罕见。所以在默认的情况下,程序在32位Windows系统下最多能使用的内存就是2G。
那么现在如果一台用4GB以上内存配置成的数据库服务器,在系统默认的情况下,只有2GB的用户态内存地址空间,真的是太小了!这么小的用户态内存限制了SQL Server最多也只能使用2GB内存,从而严重阻碍了SQL Server有效利用硬件资源。
3.1 Windows对SQL SERVER 内存管理
1、Windows层面上的内存使用检查
SQL server的内存是通过Windows的API来申请的,如果Windows自己本身就缺少内存,SQL Server由于申请不到内存,性能自然受影响。因此做SQL Server的内存检测,第一步就是查看系统层面的内存,以确保系统本身不缺内存,这一步简单但是必不可少。这些工作可以用windows的性能监视器来完成。
启动 Windows 性能监视器:开始-->运行—>输入perfmon-->回车。运行截图如下:
图3.1.1
分析图3.1.1,Windows系统的内存总体使用情况的计数器:
    Memory:Available MBytes:系统中空闲的物理内存数。
    Memory:Pages/Sec:由于Hard Page的发生,每秒钟从硬盘中读取或者写入的页面数。该计数器等于Memory:Pages Input/Sec与Memory:Pages Output/Sec之和。
分析Windows系统自身的内存使用情况的计数器:
    Memory:Cache Bytes:系统的Working Set,也就是Windows系统使用的物理内存数。
对于每个进程的内存使用情况的计数器:
    Process:Private Bytes:进程提交的地址空间中非共享的部分。
    Process:Working Set:进程的地址空间中存放在物理内存中的那部分。
从这些计数器中,我们可以看到系统中是否还有空闲内存,哪个进程使用的内存最多,在发生问题的时候是否有内存使用量突变等情况。这为接下来分析SQL Server的使用提供一个前提条件。
〖 浏览次数: