文章编号: 815372 - 最后修改: 2011年1月5日 - 修订: 2.0 如何优化 Exchange Server 2003 中的内存使用
重要说明:本文包含有关如何修改注册表的信息。修改注册表之前,一定要先进行备份,并且一定要知道在发生问题时如何还原注册表。有关如何备份、还原和修改注册表的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章: 256986?
(http://support.microsoft.com/kb/256986/
)
Microsoft Windows 注册表说明 本页概要警告:如果使用注册表编辑器或其他方法错误地修改了注册表,则可能导致严重问题。这些问题可能需要重新安装操作系统才能解决。Microsoft 不能保证您可以解决这些问题。修改注册表需要您自担风险。本文介绍了在运行 Exchange Server 2003 的计算机上对内存使用的优化。 如果在运行 Microsoft Exchange Server 2003 的服务器上安装了 1 GB 或更多的物理内存 (RAM),则必须保证 Exchange 2003 可以有效利用该内存。 注意:Exchange 2003 在存储进程启动时执行最优内存配置检查。如果内存设置不是最优的,事件查看器中将会出现事件 9665。如果满足下列条件之一,就会出现此消息:
如果您要关闭内存配置检查,可以创建以下注册表项: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSExchangeIS\ParametersSystem Suppress Memory
Configuration Notification 类型:REG_DWORD 设置:1 注意
本文的下列各部分包含所有这些设置的推荐设置。 虚拟地址空间概念Exchange 2003 中的 Exchange 信息存储 (Store.exe) 进程可以处理的内存容量是有限的,这与硬件配置、服务器上的数据库容量以及用户数量无关。此容量称为虚拟地址空间。大多数情况下,信息存储使用的这一虚拟地址空间决定 Exchange Server 2003 邮箱服务器的总体性能和可伸缩性。对于中小型服务器,Exchange Server 2003 会自动实现最佳平衡。但是,对于大型服务器,您可能需要手动调整一些优化参数。如果 Exchange Server 2003 计算机安装了 1 GB 或更多的内存,且计算机是邮箱或公用文件夹的宿主,请确保向服务器上的 Boot.ini 文件添加 /3GB 开关。如果服务器上没有任何邮箱或公用文件夹(如邮件网关),建议不要使用 /3GB 开关。默认情况下,Microsoft Windows 2000 Advanced Server 和 Windows Server 2003 操作系统保留 2 GB 虚拟地址空间供内核模式使用,保留 2 GB 供用户模式使用。特定进程的虚拟地址空间是在启动时分配的,并且在操作期间会随着内存使用的增加而增加。通常情况下,进程实际使用的内存(工作集)远远少于分配给该进程的地址空间。在安装了 1GB 或更多内存且运行 Exchange Server 2003 的计算机上,必须修改 Windows 2000 Advanced Server 和 Windows Server 2003 操作系统,以便留出 3 GB 的用户模式内存空间。您可以通过在 Boot.ini 文件中使用 /3GB 开关来实现此目的。要在基于 Windows 2000 Advanced Server 的计算机上使用该设置,还必须在以下注册表子项中配置 SystemPages 注册表: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\SystemPages 如果您运行的是 Windows 2000 Server Standard Edition,请不要设置 /3GB 开关。Windows 2000 Server Standard Edition 不支持此内存调整开关。如果您设置此开关,服务器不会生成错误信息,但是会导致假内存地址空间的存在。如果某个进程试图访问这个较大的地址空间,蓝屏上则会出现一条“Stop”错误信息,并且服务器将停止响应。 注意:Windows Server 2003 的所有版本(包括 Windows Server 2003 Standard Edition)都支持 /3GB 调整开关。 有关如何设置 /3GB 开关的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章: 266096?
(http://support.microsoft.com/kb/266096/
)
当物理 RAM 超过 1 GB 时 Exchange 2000 需要 /3GB 开关
如果在基于 Windows Server 2003 的计算机上运行 Exchange 2003,且设置了 /3GB 开关,则 Microsoft 建议您在 Boot.ini 文件中设置 /USERVA=3030 参数。这样,服务器上就会有更多的系统页表项目 (PTE)。
有关 /USERVA 开关的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
810371?
(http://support.microsoft.com/kb/810371/
)
在运行 Exchange Server 的 Windows 2003 Server 计算机上使用 /Userva 开关
确保 Store.exe 进程不会用尽虚拟地址空间。当虚拟地址空间耗尽时,即使有大量可用的物理内存,内存分配也将失败。要解决此问题,您必须重新启动信息存储服务。例如,具有 2 GB 物理内存、但没有在 Boot.ini 文件中设置 /3GB 开关的服务器在 Store.exe 进程所使用的虚拟地址空间达到 2 GB 时将会出现内存不足的情况。在这种情况下,Windows 任务管理器可能会显示实际只使用了大约 1.5 GB 的内存。但是,服务器内存不足的情况确实存在,并且必须重新启动信息存储服务。当 Store.exe 进程的虚拟内存不足时,Exchange Server 2003 服务器的性能可能会大大降低。当最大的可用虚拟内存块减至 32 MB 时,事件查看器的应用程序日志中会生成事件 ID 为 9582 的警告事件。如果您看到此事件,最好在下次有机会时重新启动 Store.exe 进程。如果最大内存块减少得更严重,只剩下 16 MB,事件查看器的应用程序日志中会生成事件 ID 9582 错误事件。如果发生此事件,则意味着服务器已接近临界操作条件,必须在下次有机会时重新启动服务器。发生此错误后,内存可能会在几个小时内耗尽。如果您没有响应这些事件,可能会遇到下列症状:
最大化虚拟地址空间要确保性能和稳定性不会降低,最好对大型邮箱服务器上用于信息存储的虚拟地址空间进行监视。执行此操作的最简单方法是,在“性能”实用工具中监视 MSExchangeIS 性能对象的虚拟内存最大块大小计数器。该值以字节为单位显示。启动计算机后,通常应查看最大虚拟内存块大小是否明显减少。但是,经过一两天的运转后,该值会接近一般的操作级别。如果最大可用虚拟内存块的值大于 200,000,000 字节(大约 200 MB),则表示服务器运行正常。如果您发现内存块小于该值,请更加密切地监视服务器。如果您遇到虚拟地址空间不足的情况:
存储数据库缓存大小存储数据库缓存也称为 ESE 缓冲区,在数据库事务被提交到存储区之前,该缓冲区为这些事务提供较大的缓存区域。默认情况下,Exchange Server 2003 会查询本地计算机的内存配置,然后分配 896 MB 的内存(如果 Boot.ini 文件中设置了 /3GB 开关),或者分配 576 MB 的内存(如果没有设置 /3GB 开关)。如果服务器负载过重,或者如果磁盘性能不是最优的,则使用较大的 ESE 缓冲区会提高系统的总体性能。根据您的配置,您可能必须增加或减小此缓冲区的大小,以便获得最佳的总体性能。如果 Exchange Server 2003 所在的环境中存在其他服务器端程序,则它可能会独占可用的内存资源。“动态缓冲区分配”(DBA) 算法负责在其他程序需要内存时将内存归还给操作系统。不过,您可以通过减小 ESE 缓冲区手动限制 Exchange Server 2003 使用的内存。 在具有 2 GB 以上内存的服务器上,增加 ESE 缓冲区大小可能会有所帮助。由于虚拟地址空间限制,该值不能大于 1,200 MB。 增加最大缓冲区大小之前,最好使用 Windows“性能”实用工具监视具有典型负载的服务器上的内存。为此,请监视以下性能对象和值: 性能对象:进程 在性能监视期间收集的信息可为您提供 Store.exe 进程已分配的虚拟地址空间的准确值。在 Boot.ini 文件中设置了 /3GB 开关的服务器上,“性能”实用工具中显示的值通常小于 2.8 GB。对于没有在 Boot.ini 文件中设置 /3GB 开关的服务器,该值通常小于 1.8 GB。在安装了 1 GB 或更多内存的服务器上,最好向 Boot.ini 文件中添加 /3GB 开关。如果您看到的任意配置的值大于以前所见到的那些值,则不要增加最大缓冲区大小。如果您看到的任意配置的值小于以前所见到的那些值,可能需要增加数据库最大缓冲区大小。性能计数器:虚拟字节 实例:STORE 例如,如果您的服务器在 Boot.ini 文件中配置了 /3GB 开关,而且性能监视在服务器负载过重时显示 2.5 GB 的虚拟字节计数,则您或许可以将最大缓冲区大小增加 300 MB 左右,使总大小为 1,200 MB。 增加缓冲区大小可能会对服务器性能产生不利影响。缓冲区越大,意味着使用的虚拟地址空间越多。因此,如果您的服务器遇到虚拟内存地址空间限制,增加缓冲区大小可能会导致操作系统不稳定。在非常大的邮箱服务器上,可能必须减小默认的缓冲区大小才可防止系统不稳定。 如何修改 ESE 缓冲区大小msExchESEParamCacheSizeMax 参数控制 ESE 缓冲区大小。它的值以页计数的形式表示,并且必须设置为 8192 的精确倍数才可实现最大效率:
如果已经将 Exchange 5.5 Server 计算机就地升级到了 Exchange 2000 Server,您可能会注意到为 msExchESEParamCacheSizeMax 参数分配了一个异常高的值。在有些服务器上,该值等于 2,048 MB。在这种情况下,请删除该参数或将其重置为更适当的值。要修改存储数据库缓存大小,请执行下列操作:
这篇文章中的信息适用于:
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。 | 其他资源 其他帮助资源社区或论坛马上获得帮助文章翻译
|






Windows Live
Facebook
Twitter
Linkedin
Digg it
Yahoo
Delicious
StumbleUpon
Yammer
Reddit
Technorati
FriendFeed
Email
回到顶端
