![我可以阻止 Exchange 在工作时间进行索引吗?](https://linux22.com/image/711639/%E6%88%91%E5%8F%AF%E4%BB%A5%E9%98%BB%E6%AD%A2%20Exchange%20%E5%9C%A8%E5%B7%A5%E4%BD%9C%E6%97%B6%E9%97%B4%E8%BF%9B%E8%A1%8C%E7%B4%A2%E5%BC%95%E5%90%97%EF%BC%9F.png)
我们在 DAG 环境中运行 2 台 Exchange 服务器。两台服务器都托管 2 个数据库,并拥有另外 2 个数据库的被动副本。
我们的一台 Exchange 服务器正在索引最大数据库的被动副本,由于以下过程,导致 CPU 使用率上升至 99%,内存使用率上升至 80%(具有 6 核和 32GB RAM 的虚拟机):
- 节点运行器
- Microsoft.Exchange.Store.Worker
- 微软ExchangeHMWorker
当我使用获取邮箱数据库复制状态cmdlet,它会告诉我 LastInspectedLogTime 是几秒钟前,所以它正在主动“检查”数据库。
这是周一早上第二次发生这种情况,非常烦人。我也不知道这种高 CPU 使用率会持续多久,因为上次我们只是重启了服务器。
有没有办法防止这种情况在特定时间发生?也许使用时间表或其他方法?
答案1
1. 无法阻止 Exchange Server 在工作时间进行内容索引(唯一的解决方法是启动/停止索引器服务)。但是,如果您禁用该服务,您的用户在执行搜索时会在 Outlook 客户端中收到错误消息。我也不会尝试禁用 DAG 内 DB 的索引(请参阅这里如果需要的话)。因为如果索引无法正常工作(例如服务未启动或数据库上的索引被禁用),DAG 中的自动故障转移将无法工作(请参阅这里),您需要通过以下方式手动移动邮箱:
Move-ActiveMailboxDatabase <database> -SkipClientExperienceChecks -ActivateOnServer MAIL1
如果一切按预期运行。如果索引变得陈旧,您也可以完全重置索引(请参阅这里) 这会比启动和运行它花费更多的时间。
2. 但是您可以微调索引器。例如,如果默认的 32MB 附件大小对于您的环境来说太大(例如,由于大多数用户在缓存模式下使用 Outlook,使用本地 PC 索引),您可以将服务器索引限制为 2MB。如果需要,您还可以禁用某些文件类型(如 ZIP 文件)的索引。我认为微调索引可能是您环境中更好的选择,因为禁用索引将禁用大多数 DAG 功能。由于索引的微调可能与您的问题无关,因此我不会在这里详细介绍。您可以找到各种选项这里例如。我也会完全重置索引在这里进行一些微调后,索引将仅包含应索引的修复,而不包含旧的修复。
建议:如果您的 Exchange 服务器超出容量,我将开始使用 Office 缓存模式,防止使用 OWA 并微调索引过程并构建和分配自己的客户端限制策略。如果这不可能或者没有帮助,则您需要更多的 CPU 能力。
答案2
一种强力方法。您可以使用 Microsoft Exchange 搜索索引器服务控制索引时间。早上停止并禁用。下班后开始。备份期间停止。(前脚本)备份完成后启动(后脚本)。
应用程序日志中是否有任何 CI 故障排除源错误事件?如果有,请查看https://technet.microsoft.com/en-us/library/hh377599(v=exchg.140).aspx
最后,您可以随时禁用副本上的索引。如果您这样做,请先查看这篇文章: https://social.technet.microsoft.com/Forums/ie/en-US/04b239ef-93b8-45d7-864a-67ef1cbaaaad/disable-content-indexing-on-dag-database-prevents-fail-over?forum=exchange2010