状况分析
环境如下:
硬件:IBM3610服务器
系统:windows2003 x32
应用:内部物流系统软件 C/S架构
数据库:SQL Server2000
问题:
- 因为物流系统架构问题(开发比较早05年开发架构)服务端和客户端都只能运行在32位环境下
- 这样导致系统内存用不上去,一直在3.25G左右
- SQL的运行内存一旦上去退步下来
- 用户连接量大的时候很卡,并发上不去
最后搜罗了很多方法,进行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