General tuning and performance tips for Contact Optimization

Keep in mind these points when you make data or configuration decisions, if you are concerned about performance.

  • In general, larger PCTs take longer to process than smaller ones, in both the IO-intensive data setup and CPU-intensive sections.
  • Larger numbers of proposed contacts per customer makes the core algorithm work harder in the CPU-intensive section.
  • A larger value of Optimize|AlgorithmTuning|CustomerSampleSize takes more memory and longer CPU-intensive processing than a smaller value. There is a tradeoff here, since larger values can give more optimal results. Also, smaller values increase the likelihood of encountering sample-related provisioning problems. Check both the session level advanced settings and the configuration properties.
  • If you use a time interval in your rules, this interval adds processing time in two ways:
  1. Contact history is queried, and this query can be slow since those tables are often large.
  2. The number of rules is multiplied by the number of time windows required by the interval. This condition makes the CPU-intensive part do more work.

Configure multiple threads

You can decrease run time of the CPU-intensive section by configuring multithreading if the following is true:

  • You can see from the log timestamps that much of the session run time is in the CPU-intensive section.
  • The Contact Optimization server is running on hardware that supports data-intensive processing in multiple threads.