首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >EventQueue表失控生长

EventQueue表失控生长
EN

Stack Overflow用户
提问于 2014-06-12 19:38:41
回答 1查看 5.3K关注 0票数 13

我们遇到了一个问题,EventQueue表有时增长非常快,每秒高达3k记录,而且从来不清除记录(目前有3000万条记录)。我们的环境有以下设置:

塞托雷7.2

  • 4台CD服务器和1台CM服务器
  • 所有四个CD服务器都是负载均衡的。
  • CD1和CD2指向DB1服务器,CD3和CD4指向DB2。
  • 服务器有两个发布目标(每个DB一个)合并
  • 在所有服务器(CM、CD)中为Core db设置复制
  • 启用了EventQueue

我有几个问题,所以我会把它们分成几个单独的项目。

  1. 当为所有CD服务器发布发布时,更新的内容直接从CM db发送到CD db (所有正确的表),还是发送到CD db中的EventQueue表,而CD服务器有一个任务/任务,它查看表并根据需要进行更新。
  2. 根据对第一个问题的回答,如果有两个CD服务器指向同一个DB,他们如何知道是否应该处理EventQueue表(不是每个服务器都处理表并重复工作吗)
  3. 为什么EventTable表未被清除?如何被清除,何时被清除?
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-06-12 20:41:01

  1. 在CM发布时,发布请求被发送到CD db上的EventQueue表,并根据实例的发布计划对其进行处理。
  2. InstanceName表中的EventQueue列存储每个EventQueue实例的唯一名称(默认情况下这是机器名+ IIS实例名,但可以在web.config中设置)。这使单个CD实例能够在负载平衡环境中捕获事件。
  3. EventQueue表是由web.config中的<scheduling>元素中定义的Sitecore任务清除的,尽管我在过去见过这种错误行为。默认情况下,它被设置为: <agent type="Sitecore.Tasks.CleanupEventQueue, Sitecore.Kernel" method="Run" interval="04:00:00"> <DaysToKeep>1</DaysToKeep> </agent>

我以前在EventQueue和PublishQueue表上遇到过很高的负载,我建议尝试以下几种方法(其中一些是Sitecore支持部门提出的):

  • 缩短CleanupEventQueue代理的间隔(上面)
  • 减少CleanupEventQueue上的CleanupEventQueue设置(同时CleanupPublishQueue不会伤害)
  • 创建一个计划好的SQL作业来运行CMS调优指南中概述的清理脚本(第10页:sc70-usletter.pdf)

最后,来自Sitecore的支持:

Sitecore建议历史表、PublishQueue表和EventQueue表中的行(条目)数应小于1000。

票数 16
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24192678

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档