状况分析


环境如下:

硬件:IBM3610服务器

系统:windows2003  x32

应用:内部物流系统软件   C/S架构

数据库:SQL Server2000


问题:

  1. 因为物流系统架构问题(开发比较早05年开发架构)服务端和客户端都只能运行在32位环境下

  2. 这样导致系统内存用不上去,一直在3.25G左右

  3. SQL的运行内存一旦上去退步下来

  4. 用户连接量大的时候很卡,并发上不去


最后搜罗了很多方法,进行32位环境下的内存优化,具体如下:


1.Windows 2003 企业版 打开PAE更好的利用4G以上内存


修改boot.ini文件,如下:


[boot loader]

timeout=0

default=multi(0)disk(0)rdisk(0)partition(1)\WINNT

[operating systems]

multi(0)disk(0)rdisk(0)partition(1)\WINNT="Microsoft Windows 2000 Advanced Server"

/fastdetect /PAE



2.启用锁定内存页选项(windows)

启用锁定内存页选项

在"开始"菜单上单击"运行"子菜单,然后在"打开"框中键入"gpedit.msc"。

在"组策略"控制台上,展开"计算机配置",然后展开"Windows 设置"。

展开"安全设置",然后展开"本地策略"。

选择"用户权限分配"复选框。

详细资料窗格中随即显示出策略。

在详细资料窗格中,双击"锁定内存页"。

在"本地安全策略设置"对话框中,单击"添加"按钮。

在"选择用户或组"对话框中,添加有权运行 sqlservr.exe 的帐户。


3.启用SQL的AWE

code 如下,设定SQL 使用6G的内存

sp_configure 'show advanced options', 1

RECONFIGURE

GO

sp_configure 'awe enabled', 1

RECONFIGURE

GO

sp_configure 'max server memory', 6144

RECONFIGURE

GO


4.必须重新启动 SQL Server 2000 实例才能使更改生效。

net stop mssqlserver

net start mssqlserver