- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
突破2G内存限制 SQL2008 AWE应用测试
我们采用了评测中心的一台DELL 2950服务器,配置了双路Intel 45nm Xeon E5430处理器,频率为2.66GHz,并能支持SSE4.1指令集。服务器还使用了Intel 5000X芯片组,提供24MB的Snoop Filter缓存,这可以提升高负荷时的内存/处理器性能。磁盘系统则是3块15000RPM的Cheetah 15K.5,并通过一块PCIe x8的LSI MegaRAID SAS 8708ELP来组建RAID 5阵列。
为了使用AWE,应用程序必须:
1. 使用Win32的AllocateUserPhisycalPages API函数分配扩展物理内存。该函数需要调用者具有将内存页锁定的权限。
2. 使用VirtualAlloc API函数在进程的地址空间中创建一个区域,作为与扩展物理内存进行映射的一个窗口。
3. 使用MapUserPhysicalPages或者MapUserPhysicalPagesScatter API函数,将扩展物理内存映射到这个虚拟内存窗口中。
在数据库使用AWE功能之前,必须对操作系统和SQL数据库分别进行设置。
内存锁定页面
首先应用程序要满足第一条要求,它必须能具备内存锁定页面功能,这需要在组策略中进行设置,如图所示启用SQL程序运行帐号的内存锁定页面功能。通常基于安全性的考虑会给数据库一个独立的运行帐号,这时就需要将其添加入内存锁定页面选项页。一些其他需要AWE功能的程序,也需要这样设置。
SQL2005的AWE设置很方便
随后要进入SQL2005的管理界面,将AWE选项打开。和SQL2000必须通过控制台命令打开不同,SQL2005可以在图形界面下设置,很方便。设置完毕需要重新启动SQL服务。
我们在被测服务器上安装了Microsoft SQL 2005,按照测试要求建立了数据库。BF在测试之前会在数据库中生成9个表,其中包括4个500万行的表格,每行包括100字节的数据,因此每个表格容量大约是476MB,整个数据库容量为1.86GB。我们用60个客户端模拟了总共1600个用户,在这个数据库中进行查询、添加、删除、修改等操作。在测试期间,数据的吞吐量很小,因此网络吞吐量不会成为瓶颈。
这里可以看出,我们的配置使用了AWE功能之后,数据库在中等用户数量下的性能得到了较大的提升,幅度可以达到25%左右,而在大量用户数量下,使用AWE功能会导致性能下降10~20%左右。
IT168评测中心观点
测试结果看上去有些奇怪,不过分析之下应该可以理解。我们的测试机器只具有4GB内存(和2~4GB虚拟内存),在中等用户数量条件下,AWE功能让数据库突破了2GB的限制,从而可以达到3GB左右,因此吞吐量得到了提升。而在重负荷的情况下,系统内存已经耗尽(操作系统、文件系统缓存本身也要占用一定的内存),因此AWE锁定内存页面反而降低了可以用于分页的内存,因此性能会有降低。从这点来看,3GB~4GB的重负荷数据库服务器使用AWE的必要性不是很大。
然而再往上就不同了,AWE可以让系统内存得到充分的利用,而现下内存价格已经不是特别贵了,大内存的服务器也变得较为常见,因此我们建议使用SQL数据库的时候尽量开启AWE功能。
AWE可以让32位Windows突破2GB进程内存限制
文档评论(0)