Troubleshooting Unica Journey Performance
Journey Web application server
- Confirm you have the latest recommended service packs and patches installed for your operating system, web application server and JVM.
- Check the jvm heap memory parameters assigned to the journey web in the application server. Try setting an initial value of 512MB and a maximum of 1024MB for Xms/Xmx respectively, based on the memory availability in the server.
- System administrators can increase these values as per requirement. In most circumstances, a value of -Xms1024m -Xmx2048m should be sufficient.
- Tune the number of connections required for JourneyDS and JourneyReportDS datasources, taking into account the number of concurrent users and connections made including REST Entrysource requirements.
- By default Journey Web supports ignite cache management solutions.
- Ignite: It is a memory-centric distributed caching solution that comes with Journey. For more details about Ignite please see https://apacheignite.readme.io/docs/what-is-ignite.
- Adjust
spring.ignite.defaultDataRegion.max.sizememory allocated to ignite. Recommended value is 1GB on a server having 16GB RAM available, but this value can be increased if more load is expected on the server. - While application server startup check journey web logs to identify any issues pertaining to db, kafka, ignite etc.
- Additionally, for more information refer the Unica Recommended Software Environments and Minimum System Requirements.
Journey Engine
- Adjust the performance-related guidelines and recommendations as per Unica Journey Tuning guide.
- If Too Many Open Files error message is observed, then check and increase the file descriptor count as per the processing requirement.
- By default, Journey Engine supports ignite cache management solutions.
- Ignite: It is a memory-centric distributed caching solution that comes with Journey. For more details about Ignite please see https://apacheignite.readme.io/docs/what-is-ignite
- Adjust
spring.ignite.defaultDataRegion.max.sizememory allocated to ignite. Recommended value is 2GB on a server having 16GB RAM available, but this value can be increased if more load is expected on the server. - If you observe warnings like WARN:com.hcl.journey.engine.services.base.impl.AudienceDataCleanUpHelper-No Data Found For key: 381 in CacheManager, then either ignite cache has corrupted or is cleaned. Try to republish the journey and check if the issue gets resolved.
- If JDBC related errors, unique constraint exceptions are observed for pause audience functionality or if you notice that same pause rules are getting executed multiple times for the same audience, then refer the Pause Audience section tuning recommendations mentioned in Unica Journey Tuning guide.
- If IO Error: Socket Read Interrupted errors are observed for oracle database,
then append this parameter while starting up journey engine:
-Doracle.jdbc.javaNetNio=false - If user observes the below
error:
org.springframework.web.reactive.function.client.WebClientRequestException: connect(..) failed: Cannot assign requested address: /x.x.x.x:xxxx; nested exception is io.netty.channel.AbstractChannel $AnnotatedConnectException: connect(..) failed: Cannot assign requested address: /x.x.x.x:xxxx, then check the available port range on the server and increase it accordingly.
Use below command to check current port range :- cat /proc/sys/net/ipv4/ip_local_port_range or
- sysctl net.ipv4.ip_local_port_range
Increase port range with below commands:
- sudo sysctl -w net.ipv4.ip_local_port_range="1024 65535" or
- append the following line to your /etc/sysctl.conf file:
# increase system IP port limitsnet.ipv4.ip_local_port_range = 1024 65535
- Skipping significant-field data validation rules per audience can improve performance. This can be disabled by setting it to false in /Engine/conf/data-validation-rules.xml :false
- Plan and run the scheduler jobs efficiently to avoid averse resource usage on journey servers.
Database
- Go through the recommended database tuning, as described in the Unica Journey Tuning Guide.
- Monitor database server resources to see if the server is over-utilized and need more resources.
- Check with your DBA to update statistics via automated scripts at regular intervals to enhance performance.
- Performance of storage devices should be monitored. Also, tablespaces/containers should be spread across multiple disks to minimize I/O.
- Periodically run cleanup/archival processes to remove unwanted or redundant data.
- Check database reports for troubleshooting issues and make suitable changes as per the recommendations.
Logging
- Check that the logging level is not set to DEBUG or TRACE in the log4j2.xml file for Unica Journey Web/Engine respectively.
- Log levels higher than default values can significantly affect performance and should be set only for troubleshooting purposes.
- Examine the log files to identify possible issues. Unica Journey allows enhanced level logging for multiple journeys. For more information, read about logging administration in the Unica Journey Administrator's Guide.
Network and diagnostics
- In a distributed setup, check network I/O amongst all components - Journey web, engine, kafka zookeeper, kafka broker(s), database and other integrated products using network diagnostic tools.
- Monitor resources and check the reports generated by performance monitor tools for processor, memory, disk and network utilization.
- Check the required resources for each component and assign/update accordingly for better performance.
- Review the performance of storage devices being used as it has a big impact on the performance.
- If the problem persists, try restarting the software components and in some cases the inline hardware servers as well for resolution.