论文部分内容阅读
[摘要]介绍了高端PC服务器(对称多处理器、内存>4GB)内存管理技术,以及在此硬件基础上运行的数据库管理系统性能调整与优化的理论、方法和具体实践。
[关键词]内存 数据库 性能 调整 优化
中图分类号:TP3 文献标识码:A 文章编号:1671-7597(2008)0710045-01
随着我厂信息化建设的逐步深化,ERP、分解细录等信息系统对数据处理的容量和性能提出了更高的要求。我厂ERP系统经过三年多的运行,积累了大量的历史数据,其数据库已增长到7GB,系统性能明显降低,原有服务器已不堪重负,因此工厂新购一台IBM4路服务器用于数据库服务,为充分发挥此服务器的性能,我们采用了一系列技术手段,最终达到了设计要求和目标。
一、部署情况
X3850服务器采用机架式安装,节省空间,维护方便。IBM System x3850 提供了出色的性能、极低的延迟时间、高可用性和易管理性,以及先进的集成技术。x3850 能够为关键应用程序提供强大的计算能力,尤其适合执行事务密集型的数据库应用。
我们在X3850服务器上安装配置最新的Windows Server 2003 R2操作系统,并启用物理地址扩展(PAE)X86。物理地址扩展 (PAE) X86允许使用地址窗口扩展(AWE) API系列的软件在具有Intel Pentium Pro 或更快处理器以及具有4GB以上物理内存的计算机上运行,以便将更多的物理内存映射为应用程序的虚拟地址空间。
通过在内存中而不是磁盘上保存数据,操作大量数据的应用程序可获得更好的性能。例如,PAE X86可明显提高如下类型的应用程序的性能:
数据库,比如SQL SERVER 2000或更高版本。
科学和工程应用程序,比如计算流体动力学的应用程序。
执行广泛的数据采集的统计分析应用程序。
二、SQL SERVER 2000 安装、配置、优化
安装配置SQL SERVER2000,应用地址窗口扩展 (AWE)技术, 充分利用IBM4路服务器8GB物理内存,以便将更多的物理内存映射为应用程序的虚拟地址空间。同时对SQL SERVER进行了性能优化。
所有数据库软件的主要设计目标之一是尽量减少磁盘I/O,因为磁盘的读取和写入操作占用大量资源。SQL Server在内存中生成缓冲池,以保存从数据库读取的页。SQL Server中的大量代码专门用于尽量减少磁盘与缓冲池之间的物理读写次数。SQL Server设法在以下两个目标之间达到平衡:
防止缓冲池变得过大,从而导致整个系统内存不足。
尽量增加缓冲池达的大小,以便尽量减少数据库文件的物理 I/O。
标准的32位地址最多可映射4GB内存。因此,32位进程的标准地址空间限制为4GB。默认情况下,在32位 Windows操作系统中,将为操作系统保留2GB空间,另外2GB空间可由应用程序使用。如果在Windows 2003 Server R2的Boot.ini文件中指定了/3gb参数,则操作系统将仅保留1GB的地址空间,应用程序最多可以访问3GB的空间。
AWE 是 Windows的内存管理功能的一组扩展,它使应用程序能够使用的内存量超过通过标准32位寻址可使用的2-3GB内存。AWE允许应用程序获取物理内存,然后将非分页内存的视图动态映射到32位地址空间。虽然32位地址空间限制为4GB,但是非分页内存却可以远远大于4GB。这使需要大量内存的应用程序(如大型数据库系统)能使用的内存量远远大于32位地址空间所支持的内存量。
默认情况下,SQL Server 2000企业版动态管理每个实例占用的内存。在 Windows Server 2003 R2操作系统上,SQL Server通过支持地址窗口化扩展插件 (AWE),从而允许在32 位版本的 Microsoft Windows操作系统上使用超过4GB的物理内存。最多可支持64GB的物理内存。
(一)启用AWE
若要启用AWE,需将awe enabled 设置为 1。如果已成功启用此选项,当SQL Server 2000 实例启动时,SQL Server日志中将写入消息“Address Windowing Extensions enabled”。
选项是一个高级选项。如果使用sp_configure系统存储过程来更改该设置,则只有在show advanced options设置为1时才能更改awe enabled。必须重新启动 SQL Server 实例,AWE才会生效。
下面说明如何启用AWE以及如何将min server memory配置为 1 GB,将 max server memory 配置为6GB:
首先,启用 AWE:
重新启动 SQL Server 后,SQL Server 日志中应显示以下消息:Address Windowing Extensions enabled。
然后,配置内存:
在上述SQL Server 2000和Windows Server 2003的配置中,内存设置使缓冲池管理6GB的AWE映射内存。
(二)性能优化
通过SQL Server的事件探查器(SQL-PROFILE)来跟踪数据库的SQL执行情况,发现耗时较长的SQL,从而发现影响性能的原因,用来分析和定位问题。使用该工具可以使我们发现是哪些SQL 语句消耗了SQL Server数据库的资源。
SQL 事件探查器用于以下活动:逐步分析有问题的查询以找到问题的原因;查找并诊断运行慢的查询;捕获导致某个问题的一系列SQL语句。然后用所保存的跟踪在某台测试服务器上复制此问题,接着在该测试服务器上诊断问题;监视SQL Server的性能以精细地调整工作负荷。
(三)优化数据库索引
通过使用SQL-SERVER事件探查器和查询分析器,分析执行时间长的SQL语句,通过创建或优化索引来提高执行效率。
三、应用效果
(一)提高了数据处理的容量
X3850具有4路双核CPU和8GB内存,6*73.4GB硬盘,处理能力有了巨大提升,因此我们把原来分散在几台服务器上的SQL数据库集中到一起。空闲出来的服务器运行其它应用。节省了投资。
(二)优化了数据库性能
通过一系列的优化措施,数据库运行性能有了很大提升,以生产领料序时簿查询为例,原来查询返回5000行数据需用时十几秒,现在只需两三秒,速度明显提高。
参考文献:
[1][美]微软公司著,张长富、孙兵、栾开春、史炬等译,《Microsoft SQL Server 2000 数据库编程》,北京希望电子出版社,ISBN 7-900071-02-4/TP.02,2001年5月第1版.
[关键词]内存 数据库 性能 调整 优化
中图分类号:TP3 文献标识码:A 文章编号:1671-7597(2008)0710045-01
随着我厂信息化建设的逐步深化,ERP、分解细录等信息系统对数据处理的容量和性能提出了更高的要求。我厂ERP系统经过三年多的运行,积累了大量的历史数据,其数据库已增长到7GB,系统性能明显降低,原有服务器已不堪重负,因此工厂新购一台IBM4路服务器用于数据库服务,为充分发挥此服务器的性能,我们采用了一系列技术手段,最终达到了设计要求和目标。
一、部署情况
X3850服务器采用机架式安装,节省空间,维护方便。IBM System x3850 提供了出色的性能、极低的延迟时间、高可用性和易管理性,以及先进的集成技术。x3850 能够为关键应用程序提供强大的计算能力,尤其适合执行事务密集型的数据库应用。
我们在X3850服务器上安装配置最新的Windows Server 2003 R2操作系统,并启用物理地址扩展(PAE)X86。物理地址扩展 (PAE) X86允许使用地址窗口扩展(AWE) API系列的软件在具有Intel Pentium Pro 或更快处理器以及具有4GB以上物理内存的计算机上运行,以便将更多的物理内存映射为应用程序的虚拟地址空间。
通过在内存中而不是磁盘上保存数据,操作大量数据的应用程序可获得更好的性能。例如,PAE X86可明显提高如下类型的应用程序的性能:
数据库,比如SQL SERVER 2000或更高版本。
科学和工程应用程序,比如计算流体动力学的应用程序。
执行广泛的数据采集的统计分析应用程序。
二、SQL SERVER 2000 安装、配置、优化
安装配置SQL SERVER2000,应用地址窗口扩展 (AWE)技术, 充分利用IBM4路服务器8GB物理内存,以便将更多的物理内存映射为应用程序的虚拟地址空间。同时对SQL SERVER进行了性能优化。
所有数据库软件的主要设计目标之一是尽量减少磁盘I/O,因为磁盘的读取和写入操作占用大量资源。SQL Server在内存中生成缓冲池,以保存从数据库读取的页。SQL Server中的大量代码专门用于尽量减少磁盘与缓冲池之间的物理读写次数。SQL Server设法在以下两个目标之间达到平衡:
防止缓冲池变得过大,从而导致整个系统内存不足。
尽量增加缓冲池达的大小,以便尽量减少数据库文件的物理 I/O。
标准的32位地址最多可映射4GB内存。因此,32位进程的标准地址空间限制为4GB。默认情况下,在32位 Windows操作系统中,将为操作系统保留2GB空间,另外2GB空间可由应用程序使用。如果在Windows 2003 Server R2的Boot.ini文件中指定了/3gb参数,则操作系统将仅保留1GB的地址空间,应用程序最多可以访问3GB的空间。
AWE 是 Windows的内存管理功能的一组扩展,它使应用程序能够使用的内存量超过通过标准32位寻址可使用的2-3GB内存。AWE允许应用程序获取物理内存,然后将非分页内存的视图动态映射到32位地址空间。虽然32位地址空间限制为4GB,但是非分页内存却可以远远大于4GB。这使需要大量内存的应用程序(如大型数据库系统)能使用的内存量远远大于32位地址空间所支持的内存量。
默认情况下,SQL Server 2000企业版动态管理每个实例占用的内存。在 Windows Server 2003 R2操作系统上,SQL Server通过支持地址窗口化扩展插件 (AWE),从而允许在32 位版本的 Microsoft Windows操作系统上使用超过4GB的物理内存。最多可支持64GB的物理内存。
(一)启用AWE
若要启用AWE,需将awe enabled 设置为 1。如果已成功启用此选项,当SQL Server 2000 实例启动时,SQL Server日志中将写入消息“Address Windowing Extensions enabled”。
选项是一个高级选项。如果使用sp_configure系统存储过程来更改该设置,则只有在show advanced options设置为1时才能更改awe enabled。必须重新启动 SQL Server 实例,AWE才会生效。
下面说明如何启用AWE以及如何将min server memory配置为 1 GB,将 max server memory 配置为6GB:
首先,启用 AWE:
重新启动 SQL Server 后,SQL Server 日志中应显示以下消息:Address Windowing Extensions enabled。
然后,配置内存:
在上述SQL Server 2000和Windows Server 2003的配置中,内存设置使缓冲池管理6GB的AWE映射内存。
(二)性能优化
通过SQL Server的事件探查器(SQL-PROFILE)来跟踪数据库的SQL执行情况,发现耗时较长的SQL,从而发现影响性能的原因,用来分析和定位问题。使用该工具可以使我们发现是哪些SQL 语句消耗了SQL Server数据库的资源。
SQL 事件探查器用于以下活动:逐步分析有问题的查询以找到问题的原因;查找并诊断运行慢的查询;捕获导致某个问题的一系列SQL语句。然后用所保存的跟踪在某台测试服务器上复制此问题,接着在该测试服务器上诊断问题;监视SQL Server的性能以精细地调整工作负荷。
(三)优化数据库索引
通过使用SQL-SERVER事件探查器和查询分析器,分析执行时间长的SQL语句,通过创建或优化索引来提高执行效率。
三、应用效果
(一)提高了数据处理的容量
X3850具有4路双核CPU和8GB内存,6*73.4GB硬盘,处理能力有了巨大提升,因此我们把原来分散在几台服务器上的SQL数据库集中到一起。空闲出来的服务器运行其它应用。节省了投资。
(二)优化了数据库性能
通过一系列的优化措施,数据库运行性能有了很大提升,以生产领料序时簿查询为例,原来查询返回5000行数据需用时十几秒,现在只需两三秒,速度明显提高。
参考文献:
[1][美]微软公司著,张长富、孙兵、栾开春、史炬等译,《Microsoft SQL Server 2000 数据库编程》,北京希望电子出版社,ISBN 7-900071-02-4/TP.02,2001年5月第1版.