概要 | |||||
概述 | |||||
如何监视虚拟内存和检测虚拟内存碎片 | |||||
应用程序事件日志 | |||||
性能日志和警报 | |||||
如何发现虚拟内存碎片问题 | |||||
如何优化虚拟内存使用量 | |||||
更多信息 | |||||
参考 | |||||
这篇文章中的信息适用于: |
1. | 准备并执行在未来 36 到 72 小时内关机然后重新启动服务器的步骤。 | ||
2. | 要确定衰减率,请使用性能日志和警报工具监视下面用于“MSExchangeIS”性能对象的计数器:
|
1. | 在将群集资源移到被动节点之前,重新启动被动节点。 此步骤有助于确保群集资源移到具有“干净”的虚拟内存地址空间的服务器上。 |
2. | 将群集资源移到被动节点上。 |
3. | 重新启动以前拥有该群集资源的节点。 |
• | Exchange 安装在运行任何版本的 Microsoft Windows 2000 Server 的计算机上,且注册表中 SystemPages 的设置值不在 24000 到 31000 范围内。 |
• | Exchange 安装在运行 Microsoft Windows 2000 Advanced Server 或 Microsoft Windows 2000 Datacenter Server 的计算机上,且服务器上安装了 1 GB 或更多的物理内存,但未在 Boot.ini 文件中设置 /3GB 开关。 |
• | Exchange 安装在运行 Microsoft Windows Server 2003 Standard Edition、Microsoft Windows Server 2003 Enterprise Edition 或 Microsoft Windows Server 2003 Datacenter Edition 的计算机上,且注册表中 SystemPages 的值设置为除 0 以外的一个值。 |
• | Exchange 安装在运行 Windows Server 2003 Standard Edition、Windows Server 2003 Enterprise Edition 或 Windows Server 2003 Datacenter Edition 的计算机上,服务器上安装了 1 GB 或更多内存,且设置了 /3GB 开关,但 Boot.ini 文件中没有 /userva 开关或其设置值不在 3030 到 2970 范围内。 |
• | Exchange 安装在运行任何版本 Windows 2000 Server 或 Windows Server 2003 的计算机上,且注册表中 HeapDeCommitFreeBlockThreshold 的值设置为除 0x00040000 以外的一个值。 |
1. | 检查注册表中的 SystemPages 设置和 HeapDeCommitFreeBlockThreshold 设置。 |
2. | 检查 Boot.ini 文件中的 /3GB 开关和 /userva 开关。 |
• | 性能对象:MSExchangeIS 计数器:VM 最大块大小 此计数器显示最大空闲虚拟内存块的大小(以字节为单位)。此计数器显示为一条随着虚拟内存的使用而向下倾斜的线。如果此计数器低于 32 MB,Exchange 会在应用程序事件日志中记录事件 ID 9582 警告消息。如果此计数器低于 16 MB,Exchange 会在应用程序事件日志中记录事件 ID 9582 错误消息。如果最大空闲块很小(小于 10 MB),则服务器进入一种临界状态,在此状态下,邮件操作可能会失败并会重复记录事件 ID 12800 错误消息。 |
• | 性能对象:MSExchangeIS 计数器:VM 空闲块总数 此计数器显示空闲虚拟内存块的总数(与它们的大小无关)。当您监视虚拟内存时,此计数器显示为一条呈金字塔形状的线。可以使用此计数器衡量可用虚拟内存出现碎片的速度。要计算块大小的平均值,请使用以下计数器: 性能对象:进程 计数器:虚拟字节 实例:存储 性能对象:MSExchangeIS 要计算块大小的平均值,用“Process”性能对象的“虚拟字节”计数器的“STORE”实例除以“MSExchangeIS”性能对象的“VM 空闲块总数”。计数器:VM 空闲块总数 |
• | 性能对象:MSExchangeIS 计数器:VM 大空闲块总字节数 此计数器显示所有大于或等于 16 MB 的空闲虚拟内存块大小的总数(以字节为单位)。此计数器显示为一条随着虚拟内存的使用而向下倾斜的线。可以使用此计数器和“VM 16 MB 总空闲块”计数器来监视虚拟内存碎片速度和服务器的虚拟内存日常状态。 |
1. | 查看事件查看器中应用程序事件日志的内容,确定其中是否记录了事件 ID 9582 警告消息或事件 ID 9582 错误消息。 注意:虚拟内存在峰值活动期间低于 32 MB 阈值,在活动较少期间显著增加,这种现象在有些用户很多的环境中可能很常见。 |
2. | 使用性能日志和警报工具监视以下计数器: 性能对象:MSExchangeIS 密切注意此计数器的值。要查看虚拟内存使用量趋势,请在 18 到 24 小时的一段时间内每隔 1 分钟对此计数器进行一次记录,然后查看“最小”值以记录最低级别。如果此计数器指示虚拟地址空间不足,请按照本文的“如何优化虚拟内存使用量” 一节中的步骤操作。计数器:VM 最大块大小 |
3. | 确定其他与信息存储有关的进程(如防病毒程序)是否正在将虚拟内存降至低于 32 MB 阈值或低于 16 MB 阈值的级别。例如,如果一个配置为扫描邮件数据库的防病毒程序将虚拟内存块降至小于 32 MB,则会在应用程序事件日志中记录事件 ID 9582 警告消息。虚拟内存级别可能仅稍小于 32 MB 阈值,不会影响性能。在没有用户活动的时间内(例如正常工作时间后),虚拟内存将增加并且不再记录事件 ID 9582 警告消息。 如果性能可以让人接受,并且虚拟内存是在用户活动较少时增加,您可能不必执行相应的步骤来解决虚拟内存问题。但是,如果您预计用户负载将会增加,您可能需要考虑执行相应的步骤来减小服务器上的虚拟内存消耗,以使 Exchange 2003 或 Exchange 2000 可以处理较大的负载。 |
1. | 安装可用于 Microsoft Windows Server 2003 或 Windows 2000 以及可用于 Exchange 2003 或 Exchange 2000 的最新 Service Pack。 有关如何获取最新 Service Pack 的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章: 260910 (http://support.microsoft.com/kb/260910/) 如何获取最新的 Windows 2000 Service Pack 301378 (http://support.microsoft.com/kb/301378/) 如何获取最新的 Exchange 2000 Server Service Pack 注意:Exchange 2000 Server Service Pack 3 (SP3) 中引入了行为更改,以便从较高的内存位置分配“扩展存储引擎 (ESE)”对象。实现这种“从高到低”的分配方式有助于减少虚拟内存碎片。 | ||||||||||||||||||||||
2. | 在 Boot.ini 文件中设置 /3GB 开关。 如果 Exchange 2003 或 Exchange 2000 安装在以下任何一种操作系统上,并且计算机上安装了大于 1 GB 的物理内存,请在 Boot.ini 文件中设置 /3GB 开关:
重要说明:如果在运行 Windows 2000 Server 的计算机上运行 Exchange Server 2003 或 Exchange 2000 Server,则不要在 Boot.ini 文件中设置 /3GB。此操作系统不支持该选项。 有关更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章: 291988 (http://support.microsoft.com/kb/291988/) 4 GB RAM 调优功能和物理地址扩展开关介绍 266096 (http://support.microsoft.com/kb/266096/) 当物理 RAM 超过 1 GB 时 Exchange 2000 需要 /3GB 开关 使用 /3GB 开关的作用之一是显著减少可用于内核的系统页面数。Microsoft 建议您在 Exchange 服务器上的 Boot.ini 文件中设置 /3GB 开关,以修改默认设置并增加可以分配的系统页面数。 在基于 Windows Server 2003 的计算机上的 Boot.ini 文件中设置 /3GB 开关时,请将 Boot.ini 文件中的 /userva 开关设置为介于 2970 和 3030 之间的值。推荐值为 3030(此值等效于 Windows 2000 SysyemPages 值 31000)。 重要说明:在 Windows 2003 中,/userva 开关用于替代 SystemPages 注册表项。它们不能结合使用。如果 /userva 开关的值在 SystemPages 注册表项中没有设置在 2970 和 3030 之间,且设置了 /3GB 开关,那么 Exchange 2003 会将事件 ID 9665 记录到应用程序事件日志中。此事件 ID 表明未将服务器上的虚拟内存配置为使用最佳内存设置。 要在运行 Windows 2000 Server 的计算机上设置 SystemPages 注册表值,请按照下列步骤操作:
| ||||||||||||||||||||||
3. | 尽量减少服务器上存储组的数目。 安装存储组时会使用额外的虚拟内存,而现有存储组中的额外数据库对使用的虚拟内存量的影响很小。因此,在服务器上创建额外的存储组之前,可能需要先填满一个存储组。 | ||||||||||||||||||||||
4. | 在下面的注册表项中设置 HeapDeCommitFreeBlockThreshold DWORD 值: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager HeapDeCommitFreeBlockThreshold 注册表值是堆可以收回的空闲块的最小大小。默认值是 0(零)。这表示堆管理器可以收回每个可用的 4 KB 页面。收回操作可能会造成额外的虚拟内存碎片。可以在以下注册表项中将 HeapDeCommitFreeBlockThreshold 注册表项设置为更高的值,以帮助减少虚拟内存碎片: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager 用于 HeapDeCommitFreeBlockThreshold 注册表项的推荐值为“0x00040000”(十六进制格式)。 有关更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章: 315407 (http://support.microsoft.com/kb/315407/) “HeapDecommitFreeBlockThreshold”注册表项 注意:HeapDeCommitFreeBlockThreshold 注册表项与 /3GB 开关无关。 | ||||||||||||||||||||||
5. | 调整存储数据库缓存大小。 警告:当您使用的是“ADSI 编辑”管理单元、LDP 实用工具或任何其他 LDAP 版本 3 的客户端时,如果对 Active Directory 对象的属性修改不当,可能会导致严重问题。要解决这些问题,您可能需要重新安装 Microsoft Windows 2000 Server、Microsoft Windows Server 2003、Microsoft Exchange 2000 Server 或 Microsoft Exchange Server 2003,或者同时重新安装 Windows 和 Exchange。Microsoft 不保证能够解决因为 Active Directory 对象属性修改不当而产生的问题。修改这些属性需要您自担风险。 要调整存储数据库缓存大小,请使用“ADSI 编辑”修改 msExchESEParamCacheSizeMax 属性的值。 存储数据库缓存也称为 ESE 缓冲区,在数据库页面被提交到存储区之前,该缓冲区为这些数据库页面提供较大的缓存区域(每个页面 4 KB)。默认情况下,Exchange 2000 将最多 229376 页面 (896 MB) 的内存用于数据库缓存。默认情况下,Exchange 2003 会查询计算机的内存配置,如果服务器上设置了 /3GB 开关,则使用最多 229376 页面 (896 MB) 的内存,如果服务器上未设置 /3GB 开关,则使用 147456 页面 (576 MB) 的内存。在具有 2 GB 以上内存的服务器中,可能需要增加 ESE 缓冲区的大小。但是,这样做可能会产生内存碎片,因为可用于其余存储功能的地址空间减少了。Microsoft 建议不要将此值设置为大于 311296 页面 (1200 MB)。 如果应用程序事件日志中记录了事件 ID 9582 信息,通过减小数据库缓存大小,也许能够解决导致出现这些事件的问题。为此,Microsoft 建议您指定一个值,该值要小于 msExchESEParamCacheSizeMax 属性的默认值并且是 8192 字节的倍数。但是减小数据库缓存大小后,Store.exe 进程会更加频繁地向磁盘执行读写操作,这可能会影响服务器的性能。 在增加最大数据库缓存大小之前,请在正常负载情况下,使用性能日志和警报监视“Process”对象的“虚拟字节”计数器的“STORE”实例。此计数器报告 Store.exe 进程所使用的虚拟地址空间的当前大小(以字节为单位)。 有关如何修改数据库缓存大小的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章: 266768 (http://support.microsoft.com/kb/266768/) 如何在 Exchange 2000 Server 中修改存储数据库最大缓存大小 注意:确保给 msExchESEParamCacheSizeMax 属性指定的值在 32 MB 边界上结束(即是 32 MB 的倍数)。 | ||||||||||||||||||||||
6. | 减少 ESE 打开表的最大数目。 警告:当您使用的是“ADSI 编辑”管理单元、LDP 实用工具或任何其他 LDAP 版本 3 的客户端时,如果对 Active Directory 对象的属性修改不当,可能会导致严重问题。要解决这些问题,您可能需要重新安装 Microsoft Windows 2000 Server、Microsoft Windows Server 2003、Microsoft Exchange 2000 Server 或 Microsoft Exchange Server 2003,或者同时重新安装 Windows 和 Exchange。Microsoft 不保证能够解决因为 Active Directory 对象属性修改不当而产生的问题。修改这些属性需要您自担风险。 Exchange 2000 使用的存储引擎缓存有关当前没有被访问的文件夹的数据。在有些情况下,这可能会导致虚拟内存碎片。缓解这种情况的一种方法是减少 Exchange 允许打开的表的最大数目。8 路服务器上的默认设置是每个存储组 27600 个表。如果降低此值,可能会减少虚拟内存碎片问题。但是,降低此值也可能会导致其他情况,如可能由于打开的表过多而使操作失败,并且可能会收到以下错误消息: Error -1311 重要说明:仅当 Microsoft 产品支持服务的支持人员建议您修改此设置时才应这么做。 JET_errTooManyOpenTables Exchange 2003 使用不同的方法缓存有关当前没有被访问的文件夹的数据。因此,不要认为减少打开表的最大数目对于减少虚拟内存碎片问题是必需的或有效的。 要减少 ESE 维护的打开表的最大数目,请将每个存储组对象中的 msExchESEParamMaxOpenTables 属性设置为“27600”。为此,请按照下列步骤操作:
|
1. | 右键单击记录 9582 事件的服务器上邮箱存储对象下的“Logons”文件夹,指向“查看”,然后单击“添加/删除列”。 |
2. | 将“打开的邮件数”、“打开的附件数”和“打开的文件夹数”几列添加到“显示的列”列表中。 |
• | Microsoft Exchange Server 2003 Standard Edition |
• | Microsoft Exchange Server 2003 Enterprise Edition |
• | Microsoft Exchange 2000 Server 标准版 |
• | Microsoft Exchange 2000 Enterprise Server |
关键字: | kbinfo KB325044 |
自由广告区 |
分类导航 |
邮件新闻资讯: IT业界 | 邮件服务器 | 邮件趣闻 | 移动电邮 电子邮箱 | 反垃圾邮件|邮件客户端|网络安全 行业数据 | 邮件人物 | 网站公告 | 行业法规 网络技术: 邮件原理 | 网络协议 | 网络管理 | 传输介质 线路接入 | 路由接口 | 邮件存储 | 华为3Com CISCO技术 | 网络与服务器硬件 操作系统: Windows 9X | Linux&Uinx | Windows NT Windows Vista | FreeBSD | 其它操作系统 邮件服务器: 程序与开发 | Exchange | Qmail | Postfix Sendmail | MDaemon | Domino | Foxmail KerioMail | JavaMail | Winwebmail |James Merak&VisNetic | CMailServer | WinMail 金笛邮件系统 | 其它 | 反垃圾邮件: 综述| 客户端反垃圾邮件|服务器端反垃圾邮件 邮件客户端软件: Outlook | Foxmail | DreamMail| KooMail The bat | 雷鸟 | Eudora |Becky! |Pegasus IncrediMail |其它 电子邮箱: 个人邮箱 | 企业邮箱 |Gmail 移动电子邮件:服务器 | 客户端 | 技术前沿 邮件网络安全: 软件漏洞 | 安全知识 | 病毒公告 |防火墙 攻防技术 | 病毒查杀| ISA | 数字签名 邮件营销: Email营销 | 网络营销 | 营销技巧 |营销案例 邮件人才:招聘 | 职场 | 培训 | 指南 | 职场 解决方案: 邮件系统|反垃圾邮件 |安全 |移动电邮 |招标 产品评测: 邮件系统 |反垃圾邮件 |邮箱 |安全 |客户端 |