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:
- Contact history is queried, and this query can be slow since those tables are often large.
- 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.