There are many areas that can affect the performance of Yellowfin, which include
- Under specced servers ( CPU or Memory )
- Insufficient JVM allocation
- Configuration of Yellowfin
- Datasource connection problems ( Timeouts, Dead Connections, Connection failures )
- Insufficient Datasource connections for the demand or load
- Insufficient caching
- Threads being blocked or waiting for threads to become free
- View configurations
- Report building and lack of filters or even over used filters
As you can see any of the above could potentially cause bottlenecks with Yellowfin and many of them are fairly simple to fix.
From a support perspective it can take quite some time to pull all of this information together to create an overall picture and isolate some of the common problems. With this in mind, there is a tool you can use, which has been written in-house to take both a visual snapshot of key areas and then compile them into a compressed file for us to review.
The file is called yfmonitor.jar and you can download it below. Please read the following instructions on how to use and for the best results (complete analysis) it should be run directly on the yellowfin instance so a GUI will be required (Windows or X interface). Having said this, you can still run this from a remote server, but your database (unless you can map the Yellowfin folder to where this is being run) and CPU will not be analysed.
If JAVA is configured, you should be able to simply click on the jar file and run it else, from a command line just run java -jar yfmonitor.jar
This will open a simple interface as follows.
- Enter the URL of your yellowfin instance. eg. http://hostname:port
- Enter the Folder where you want the results to go into. This tools will also create a new folder inside this called : Yellowfin_Report
- Click the checkbox "Scan Database for Errors" if running this tool on the Yellowfin server.
- Then enter the Yellowfin log directory where the logs are located.
- Click the checkbox "Check the CPU" if running this tool on the Yellowfin server.
- Click the checkbox "Create Thread Usage Parser Files" if you need to generate a set of thread snapshots for evaluation
- Enter the number of milliseconds (from the drop down) a snapshot will be taken
- Enter the number of times you want to take a snapshot from the drop down
If running locally click the CPU Load check box
- Click the “Click to Run the Analysis” button
For a quick snapshot suggestions would be
2000 milliseconds (2 seconds) / 120 to 180 iterations ( ~ 4 to 6 minutes )
For a longer snapshot suggestions would be
5000 milliseconds (5 seconds) / 180 to 300 iterations ( ~ 36 to 60 minutes )
There is an option for 300ms, but please refrain from using this in production as this could impact performance.
Once you click the Run button, you will see the integration counter increasing to the value you specified + 1. When this has completed, you will then be presented with a range of new windows as follows. ( Depending on the number of Datasources, will depend on the number of windows displayed, but there will be a window for each, which extracts certain data, for a more readable review )
Once the Analysis is complete, you can open the index.html page in the Yellowfin_Report directory and there will also be a zipped file, which you can upload to a support ticket. Here is an example of what you will see when running this on the server with CPU check or with access to the logs.
Cache Usage in percentage (Full capacity)
Yellowfin JVM Usage
Database Connection Problems
Final Completion window, showing you the location of the compressed file
The Final zip file contains the following files : All of the above images, jdbc, source, email, manager, access, catalina, yellowfin, info,jsp, info_threads.jsp and info_cache.jsp). This file can be simply attached to a Yellowfin Community ticket for further analysis.
JVM HEAP USAGE
For more information on JVM Heap Usage and how to increase please see here.
DATABASE CONNECTION ISSUES
For more information on performance improvement please see here.
For more information on some more advanced configuration improvements please see here.
For more information on server requirements and recommendations please see here.