This section describes some recommendations for tuning your system to achieve and maintain optimal performance of distributed e-mail. Note that performance varies inevitably from case to case; therefore you should consider these values as a starting point only and experiment with the parameters listed to determine the values that best suit your configuration.
Note also that distributed e-mail is resource intensive. In addition to configuring the parameters described here, ensure that your database, network, and SMTP servers can handle the volume of traffic generated by distributed e-mail. It may be necessary to scale your hardware at each level of the targeted e-mail architecture to achieve the level of performance you require.
VM heap size: Increasing the heap size can yield a measurable performance improvement. Suggested initial value: 1024MB per server.
Instance count: ATG recommends having one distributed e-mail server per available CPU. ATG also suggests that the CPUs reside on a machine dedicated to distributed e-mail.
CPU binding: Leaving all processes and processors unbound may provide the highest throughput for distributed mailings. For more information, refer to the documentation for your application server.
Thread handler count on distributed e-mail server
numBatchThreads
property in the/atg/userprofiling/email/BatchEmailPeriodicService
componentThe
numBatchThreads
property sets the number of threads that render e-mail. Suggested initial value: 20.E-mail batch size
emailsPerBatch
property in the/atg/userprofiling/email/TemplateEmailBatchPersister
componentThis property specifies the number of recipient addresses that can be claimed at one time for e-mail rendering. Suggested initial value: 100.
E-mail chunking for SMTP server communication
createMessagesBatchSize
property in the/atg/userprofiling/email/TemplateEmailSender
componentThe e-mail handlers send messages to the SMTP server in chunks, and the
createMessagesBatchSize
property specifies the size of the chunk. ATG suggests setting this value to at least 4 (each rendered e-mail batch sent to the SMTP server contains four outbound messages).Distributed e-mail status updates
updateBatchCountsEveryNMessages
andupdateProfileStatusesEveryNMessages
properties in the/atg/userprofiling/email/TemplateEmailSender
componentThese properties control the frequency of status updates to the database. Suggested initial value: the size of the e-mail chunks that are sent to the SMTP server.
Scenario maximum batch size
maxBatchSize
property in the/atg/scenario/ScenarioManager
componentFor very large mailings, tuning the
maxBatchSize
property helps control the size of the e-mail recipient list, which must be retrieved from the database. Suggested initial value: 1000 (the default setting). For more information, see Minimizing the Number of Collective Elements. Note that it is not necessary to change this setting if you are creating and sending mailing programmatically rather than through scenarios.