So, your SuiteCRM/SugarCRM instance is running slow or server response time is too long? It’s a pain for everyone, it kills employees’ precious time as well as can delay important tasks? Increasing server RAM and CPU cores can notch up the performance but these can lead to higher monthly operating costs and exceeding budget, so what is the solution?
Attention: Before starting to take any steps , please have backup of both instance and database.
Initially, let us show you the factors that affect the loading process of the whole page.
Let us bring a few tips and tweaks to make the system smoother and do only the required things. PLEASE HAVE AT LEAST 1GB RAM AND CPU with a minimum of 2 cores. CRM runs on schedulers and they need dedicated RAM and CPU cores for this purpose.
1)CRM Best configurations to speed up page loading
2) PHP performance
3) MySQL Performance
4) Client side performance.
5) Third Party Syncing Extensions
So let us benchmark one by one all of them and see results.
First, go to the home page and note download server performance from the bottom, usually it is in seconds, and then go to your most used module like Accounts, note download time for each.
So let’s say your home page loads in 70 seconds, listview is 50 seconds and the detailed view is 50 seconds, here the target is to reduce the loading time as much as we can. Let’s kick start and see results but before starting, let us confirm our PHP version, MySQL version, and Apache version are compatible with their platform matrix and supported versions.
Click on the about link in the CRM and note down your CRM version and Google it with “SugarCRM platform matrix” or “SuiteCRM platform matrix” and check all versions are correctly installed, if not, then the first step will be matching PHP/MySQL according to platform needs.
Step 1 :CRM Best configurations to speed up page loading.
Please open/create config_override.php file in the root folder of CRM and put these Lines at the end.
$sugar_config['verify_client_ip'] = false; $sugar_config['disable_count_query'] = true; $sugar_config['save_query'] = 'populate_only'; $sugar_config['hide_subpanels'] = true; $sugar_config['hide_subpanels_on_login'] = true; $sugar_config['logger']['level'] = fatal; $sugar_config['disable_vcr'] = true; $sugar_config['developerMode'] = false; $sugar_config['list_max_entries_per_page'] = '10'
Step 2: PHP Best configuration to match SuiteCRM needs
Using the phpinfo() function, please find the path of the php.ini file. Then edit this file with your favorite editor like nano.
If possible, have cache installed. It will store the recently used information temporarily, which allows faster data flow and eventually, enhanced performance.
Linux : APC
Windows : Wincache.
Above can be tried, but we recommend doing your own due diligence before implementing this.
cd /etc/php/7.4/apache2 nano php.ini memory_limit ( 40 - 50 % of Memory), max_file_uploads (20 - 50), post_max_size (40 - 50 % of Memory), max_execution_time (3600) , upload_max_filesize ( 40 - 50 % of Memory), max_input_time = 1000
Increasing above will make sure , SuiteCRM will get CPU attention and memory once required.
Step 3: MySQL Performance
If your CRM database is not optimized perfectly then you can’t expect to perform it well. In our article of CRM Data cleaning we have mentioned how clean databases uplift not only the efficiency but performance as well.
- Let’s clean the database first, the first step will be to purge records that are soft deleted. Please Active these 3 cron jobs in admin->scheduler
Prune Database on 1st of Month -> Remove deleted records from whole database
Prune SuiteCRM Feed Tables ->Remove data from feed tables
Prune Tracker Tables -> Remove data from tracker tables
Here in schedulers, it is very important to keep running only jobs which are really required, so all jobs must be inactive until they are not required.
2. Next is MySQL Query Cache. Querying cache results in much faster results for repeating queries.
Find your my.cnf file and put these 2 things
query_cache_type : ON
query_cache_size : 64B
query_cache_size can be changed depends upon needs
Now we must be better as we did most of action , time to reboot server and see result.
Did that make any changes to speed on views?
Step 4: Client side performance
By compressing the information that you will be sending to the web browser decreases the load on the browser. It means the browser can operate on a more efficient level and thus results in improved performance.
i) compressing all JS / CSS files
ii) compressing all images.
If you running any third party syncing applications , that can be another code level issue.
Try to disable that sync application and then see results.
If that’s the case , contact your developer.
The Bottom Line
And these are some performance tweaks that you can use to speed up your SuiteCRM/SugarCRM instance. Keeping the CRM system at an optimal level can be a difficult task, especially if you are not an expert. Therefore, we recommend you hire an experienced SuiteCRM Developer or SugarCRM Developer (as per requirement). However, you can deploy the techniques that we mentioned here without any assistance and improve the user experience.