欢迎来到天天文库
浏览记录
ID:57405621
大小:278.00 KB
页数:7页
时间:2020-08-16
《基于位Windows的SQLSERVER数据库服务器优化.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、基于位Windows的SQLSERVER数据库服务器优化————————————————————————————————作者:————————————————————————————————日期:基于32位Windows2003的数据库服务器优化,启用AWE,优化SQLServer最近几天,笔者所在的单位中的一台WEB服务器由于负载过大出现了问题,当同时在线的用户达到一定规模(2000-3000)时,频繁出现页面响应迟缓、超时等问题。服务器采用的操作系统是WindowsServer2003企业版,数据库系统是SQLServer2005企业版。正当大
2、家考虑升级服务器时,笔者对服务器状态进行了分析,并最终在未增加服务器硬件条件下找到了瓶颈、解决了问题。现将分析、解决问题的过程与大家分享,希望能帮助大家解决类似的问题。分析问题:通过对服务器检查发现,不仅服务器的HTTP请求响应迟缓,就连在服务器本机操作和远程桌面的操作中都有明显“卡”的感觉。检查任务管理器,发现此时的CPU占用率和内存使用率并不高,没有发现制约性能的地方,可是为什么系统这么慢呢?这时,我发现了服务器的硬盘灯狂闪不止,这下发现了病因,服务器在频繁的访问硬盘,而硬盘IO响应时间和内存相比是非常高的。利用SQLServer自带的性能工具
3、:SQLServerProfiler,打开其性能监视器,我发现了Avg.DiskQueueLength(平均磁盘队列)和Pages/Sec(每秒读取的磁盘页面数)都很高,如图1所示,尤其是Avg.DiskQueueLength,已经达到了万级,而Pages/Sec也达到了60。正常的AvgDiskQueueLength值应该是盘阵中磁盘数量的2倍,Pages/Sec也应该维持在10以下(除了偶尔的峰值外)。图1SQLServer性能监视解决问题:看来要想完全解决问题,就要分析数据库频繁访问硬盘的原因。一般来讲,SQLServer会充分利用内存进行缓
4、存,不会太过频繁的访问硬盘。而我们的问题是虽然负载较高,但内存使用率并不高(仅仅使用了1.8G内存)。服务器的内存总数为12G,虽然IIS与其它应用占用了一些内存,但剩余的可用内存仍然有8G左右,为什么SQLServer不充分利用内存而频繁读取硬盘呢?这里有一个很有意思的现象,微软和我们开了个小玩笑,当通过右键点击“我的电脑”的属性时,可以发现服务器正确识别了12G内存,可这并不意味着它就能使用这么多内存。WindowsServer2003企业版和WindowsXP一样都是32位操作系统,受到32位内存地址的制约,它们能使用的内存通常不会超过4G,
5、单个进程能使用的内存甚至不能超过2G。但WindowsXP的计算机属性中会老老实实地告诉我们系统只识别到3G多内存,而WindowsServer20003会识别所有内存,但实际上它默认情况下无法使用那么多内存。通过上网查询,发现可以通过开启Windows2003Server的PAE功能以启用大内存支持。首先,找到C:/的boot.ini文件。在资源管理器中点击“工具”-“文件夹选项”-“查看”,在高级设置中取消“隐藏受保护的操作系统文件”,并选择“显示所有文件和文件夹”。这样我们就可以看到boot.ini文件了。用记事本打开它,找到类似于如下的行:
6、multi(0)disk(0)rdisk(0)partition(1)/WINDOWS="WindowsServer2003,Enterprise"/noexecute=optout/fastdetect/pae如上面一样,在其末尾加上“/pae”选项,然后重新启动服务器,这样便启用了windows2003Server的大内存支持。为了让单进程使用内存突破2G,我们还需要修改SQLServer的设置。首先应该在系统中创建一个隶属于管理员身份的用户,然后在“开始”-“运行”中输入“gpedit.msc”启动组策略编辑器。找到“计算机设置”-“wind
7、ows设置”-“安全设置”-“本地策略”-“用户权限分配”,单击该节点后在右边找到“内存中锁定页面”,双击后添加刚才建立的用户。换用刚建立的用户登录系统,点击“开始”-“程序”-“管理工具”-“服务”,找到SQLServer服务。右击“属性”,点击“登录”选项卡,选择“登录身份”为“此账户”,确定下面文本框中的用户为当前新建立的用户并输入正确的用户密码(如图2),然后重新启动SQLServer服务。这样设置的目的是让有“内存中锁定页”权限的用户来启动SQLServer进程,这是使用大内存支持的必要手段。图2用新账户启动SQLServer服务重启SQ
8、LServer后,使用SQLServerManagementStudio连接到数据库服务器,右键点击服务器节点,选择“属性
此文档下载收益归作者所有