2014-06-12 50 views
13

我們遇到的問題是EventQueue表有時會增長得非常快,每秒鐘記錄3k條記錄,並且從不清除記錄(現在爲3000萬)。我們的環境有如下設置:Sitecore EventQueue表日益失控

Sitecore的7.2

  • 4 CD服務器和1個CM服務器
  • 所有4級CD的服務器進行負載平衡。
  • CD1和CD2被指出DB1服務器CD3和CD4都指出DB2
  • 服務器有2倍發佈的目標(每個DB)合併
  • 複製是建立在所有服務器的核心數據庫(CM, CD的)
  • EventQueue中啓用

我有幾個問題,所以我將其細分爲單獨項目。

  1. 當發佈爲所有CD服務器發出的是直接從CM數據庫發送到CD數據庫的(所有正確的表格),或者是它的CD數據庫發送到EventQueue表和更新的內容CD服務器有一個查看錶並根據需要進行更新的作業/任務。

  2. 根據回答第一個問題,如果有2級指向同一個DB CD的服務器,他們如何知道他們是否應該處理的EventQueue表(不會,他們每個進程表,並重復努力)

  3. 爲什麼沒有清除EventTable表?如何清除,何時清除?

回答

15
  1. 在CM發佈,發佈請求被髮送到EventQueue表上它被處理爲每個實例的發佈計劃的CD分貝。
  2. EventQueue表中的InstanceName列存儲每個Sitecore實例的唯一名稱(默認情況下,這是機器名稱+ IIS實例名稱,但可以在web.config中進行設置)。這使得負載均衡環境中的單個CD實例能夠拾取事件。
  3. Event.ueue表由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(也的DaysToKeep的設置3210不會傷害)
  • 創建計劃SQL作業運行的CMS優化指南中列出的清理腳本(第10頁:

最後http://sdn.sitecore.net/upload/sitecore7/70/cms_tuning_guide_sc70-usletter.pdf),從Sitecore的支持:

Sitecore建議History,PublishQueue和EventQueue表中的行數(條目數)將少於1000.

+1

這是很多的解釋,謝謝。我仍然不明白的一件事情是,如果有2臺CD服務器指向一個數據庫併發布了發佈,那麼每個CD服務器的EventQueue表中是否存在並且只有InstanceName字段不同?如果是這種情況,他們是否會處理相同的數據(這將是重複的),因爲他們都在表中的行動項目? – mluker

+0

對不起 - 我編輯了我的答案。發佈請求被髮送到CD上的EventQueue表,其中item/s的詳細信息爲發佈和發佈類型,而不是項目內容本身。但是,是的,每個實例在IIRC表中都有自己的行。 – computerjules

+3

感謝您的回答。我在EventQueue表中抱怨的是,如果你有腳本按計劃運行以創建/更新內容,它可以填充* LOT *。清理代理有一個「daystokeep」設置,其中最好的粒度級別爲一天。一天可能會增加約10萬條記錄。您應該能夠將分鐘的'TimeToKeep'設置指定。 – theyetiman