Configure aggregation agents

Last updated Tuesday, June 28, 2016 in Sitecore Experience Platform for Administrator

When you configure a processing server, to optimize performance, you may need to change the number of aggregation agents or threads that you run. Aggregation agents pick up interactions to be processed by the aggregation pipeline and convert data into a form suitable for use by the reporting database.

To configure aggregation agents or threads on a processing server:

  1. Open the Sitecore.Analytics.Processing.Aggregation.Services.config file in an XML editor. You can specify how many aggregation agents you want to run at the same time. Start by using the default settings.
  2. Edit the <MaxThreads> setting to specify the number of aggregation agents (threads) that you want to run on the server. You can also specify how many cleanup and recovery threads that you need. Adjust these settings depending on your available hardware and business requirements.

    Use the default values and then, over time, adjust these settings to optimize your aggregation server or servers.

          <!-- Aggregation Module: -->
    <module type="Sitecore.Analytics.Aggregation.AggregationModule" singleInstance="true">
    <BackgroundServices hint="list:Add">
    <aggregator type="Sitecore.Analytics.Core.BackgroundService">
    <param desc="agentName">aggregation/aggregator</param>
    <Interval>0.00:00:15</Interval>
    <MaxThreads>1</MaxThreads>
    </aggregator>
    <contactProcessing type="Sitecore.Analytics.Core.BackgroundService">
    <param desc="agentName">aggregation/contactProcessing</param>
    <Interval>0.00:00:15</Interval>
    <MaxThreads>1</MaxThreads>
    </contactProcessing>
    <cleanup type="Sitecore.Analytics.Core.BackgroundService">
    <param desc="agentName">aggregation/cleanup</param>
    <Interval>0.00:00:15</Interval>
    <MaxThreads>1</MaxThreads>
    </cleanup>
    <recovery type="Sitecore.Analytics.Core.BackgroundService">
    <param desc="agentName">aggregation/recovery</param>
    <Interval>0.00:00:15</Interval>
    <MaxThreads>1</MaxThreads>
    </recovery>
    <rebuild type="Sitecore.Analytics.Core.BackgroundService">
    <param desc="agentName">aggregation/rebuildAgent</param>
    <Interval>0.00:00:15</Interval>
    <MaxThreads>1</MaxThreads>
    </rebuild>
    <history type="Sitecore.Analytics.Core.BackgroundService">
    <param desc="agentName">aggregation/historyWorker</param>
    <Interval>0.00:00:15</Interval>
    <MaxThreads>1</MaxThreads>
    </history>
    <historyCompletionCheck type="Sitecore.Analytics.Core.BackgroundService">
    <param desc="agentName">aggregation/historyCompletionCheck</param>
    <Interval>0.00:00:15</Interval>
    <MaxThreads>1</MaxThreads>
    </historyCompletionCheck>
    </BackgroundServices>
    </module>
  3. Adjust the Max Pool Size property for the reporting database. The pool capacity should be at least about 120% of the number of agents (including processing, history, automation workers, and clean-up) that you have configured. This setting ensures that each thread has its own dedicated connection and will not have to wait for another thread to release its connection before running.
  4. To set the pool size, open the reporting database connection string configuration file, add the Max Pool Size property and set an appropriate value.
Send feedback about the documentation to docsite@sitecore.net.