[FRS-465] Performance issue with Redis session management on Adobe ColdFusion servers with FusionReactor or Adobe Performance Monitoring Toolset (PMT)


Introduction

We recently had a performance issue in FusionReactor where a user saw high CPU when running FusionReactor reported into our technical support team. Upon investigating the issue, we found this was due to both FusionReactor and the Adobe PMT tracking sessions by making a large number of calls to the Redis database.

We have resolved this issue in FusionReactor 8.2.1.

To confirm if you are affected by this issue

Go to Transactions > Activity and filer by Redis transactions. You will see something similar to:

 

This performance issue is caused by two factors:

  • A bug in FusionReactor that every second sends 2 get requests to Redis for each active session
  • A bug in the Adobe PMT that every second sends 1 get request to Redis for each active session

These Redis calls are all tracked by FusionReactor which slows down the performance of the server due to the volume of requests when a ColdFusion server has a high number of sessions even if these sessions where created on a different ColdFusion server but are using the same Redis server for the sessions.

To resolve the issue please upgrade to FusionReactor version 8.2.1

The Workaround (for FusionReactor 8.2.0 and under)

To work around the issue, there are 2 settings to disable in FusionReactor, as well as 1 file to place in the FusionReactor file system that stops FusionReactor tracking the Adobe PMT Redis calls.
To do this we need to:

  1. Disable session tracking in the UI
  2. Disable ColdFusion metric tracking in the UI
  3. Place a fusionreactoragent.properties file in place to stop FusionReactor tracking Redis calls. This is only needed when using FusionReactor and Adobe PMT and Redis Session tracking.

1. Disable session tracking in the UI

To Disable session tracking:

  • In FusionReactor, go to ‘UEM and Sessions’ > Settings > Sessions
  • Set the Enabled field to ‘Disabled’

2. Disable ColdFusion metric tracking in the UI

To disable the ColdFusion metrics tracking:

  • In FusionReactor, go to ‘FusionReactor’ (top left) > Plugins > Active Plugins
  • Configure the FusionReactor ColdFusion Plugin
  • Disable the Log for CF server monitor and Graph for CF server monitor

3. Place a fusionreactoragent.properties file in place to stop FusionReactor tracking Redis calls

With the 2 settings above, FusionReactor will no longer cause any requests into Redis to get session information, we will however still track the Redis calls made by the Adobe PMT.

To disable these calls, we need to stop FusionReactor tracking Redis calls through the Java Redis library.

  • Download the fusionreactoragent.properties file located at https://intergral-dl.s3-us-west-1.amazonaws.com/Customer/MF_Redis_Disable/fusionreactoragent.properties
  • The file should contain one line of text with the content “com.intergral.fusionreactor.agent.pointcuts.redis.jedis.JedisConnectionSendCommand=false“
  • Place a copy of the file in the ColdFusion instance directory
    • This directory will be {FusionReactor Directory}/instance/{ColdFusion Instance name}
    • If you have multiple instances you will need to do this to each instance
  • Restart the ColdFusion services

Issue Details

Type: Technote
Issue Number: FRS-465
Components: JDBC, Session
Environment:
Resolution:
Last Updated: Mon 30th Sep 2019  14:58 PM
Affects Version: 8.2.0
Fixed Version: 8.2.1
Server:
Platform:
Related Issues: