General Performance Tweaks

Overview

A list of general recommendations and tweaks to ensure Sugar performs optimally.

General Settings in Sugar

The following recommendations can be modified in the Sugar admin interface
  • Do Not Set Listview and Subpanel Items Per Page to Excessive Settings. Under Admin > System Settings, there are two settings ‘Listview items per page’ and ‘Subpanel items per page’. The defaults for these settings are 20 and 10 respectively. When increasing these values, it should be expected that general system wide performance will be impacted. We generally recommend to keep listview settings to 100 or less and subpanel settings to be set to 10 or less to keep system performance optimal.
  • Make sure ‘Developer Mode’ is disabled under Admin > System Settings. This setting should never be enabled in a production environment as it causes cached files to be rebuilt on every page load.
  • Set the ‘Log Level’ to ‘Fatal’ and ‘Maximum log size’ to ‘10M’ under Admin > System Settings. The log level should only be set to more verbose levels when troubleshooting the application as it will cause a performance degradation as user activity increases.
  • Ensure the scheduled job, ‘Prune Database on the 1st of Month’, is set to ‘Active’. This will go through your database and delete any records that have been deleted by your users. Sugar only soft deletes records when a user deletes a record and over time, this will cause performance degradation if these records are not removed from the database.
  • Make sure ‘Tracker Performance’ and ‘Tracker Queries’ are disabled under Admin > Tracker. These settings are intended to help diagnose performance issues and should never be left enabled in a production environment.
  • Ensure large scheduler jobs are running at slower intervals under Admin > Scheduler. Jobs such as ‘Check Inbound Mailboxes’ can decrease overall performance if they are running every minute and polling a lot of data. It is important to set these jobs to every 5 or 10 minutes to help offset the performance impacts for your users.

Sugar Peformance Settings for config_override.php

In the root directory of your Sugar installation, there should be a config_override.php file. You can enter system-wide parameters in this file that will never be altered by upgrades.
Drop the absolute totals from listviews - Eliminates performing expensive count queries on the database when populating listviews and subpanels
$sugar_config['disable_count_query'] = true;
Disable automatic searches on listviews - Forces a user to perform a search when they access a listview rather than loading the results from their last search
$sugar_config['save_query'] = 'populate_only';
Disable client IP verification - Eliminates the system checking to see if the user is accessing Sugar from the IP address of their last page load
$sugar_config['verify_client_ip'] = false;
Disable record paging in the detailview (VCR controls) - Increases performance by not loading all records from a listview into memory when accessing the record detailview
$sugar_config['disable_vcr'] = true;
Hide all subpanels - Increases performance by collapsing all subpanels when accessing a detailview every time and not querying for data until a user explicitly expands a subpanel
$sugar_config['hide_subpanels'] = true;
Hide subpanels per session - Increases performance by collapsing all subpanels when accessing a detailview when the user logs in but any subpanels expanded during the user’s session will remain expanded until the user logs out
$sugar_config['hide_subpanels_on_login'] = true;

General Environment Checks

Depending on your environment and version of Sugar, there may be additional changes your system administrator can make to improve performance.
  • For Sugar 6.5.x running on a MySQL database, we highly recommend upgrading the MySQL 5.5. MySQL 5.5 offers performance improvements in a number of areas over 5.1 such as subselects in queries.
  • If you are using MySQL as your database, we strongly recommend using InnoDB. InnoDB is tested to be better performing than MyISAM and should be the default configuration for using MySQL with Sugar.
  • If you are running PHP 5.2.x, we strongly recommend upgrading to a supported version of PHP 5.3. Our current list of supported PHP versions can be found on our Supported Platforms page.
  • If you are using a single server setup (web server and database on the same server), we have the following recommendations.
    • The server should have a minimum of 8 GB of RAM and roughly follow the 60/40 rule (60% for database / 40% for web server). On a 8 GB server, this would mean 4.8 GB for database and 3.2 GB for web server.
    • Make sure the following parameters are set for MySQL (assumption is that the engine is InnoDB)
      • innodb_buffer_pool_size = 4294967296 (4 GB in size)
      • innodb_log_buffer_size = anywhere from 10485760 (10 MB - Minimal writes) to 104857600 (100 MB - Lots of writes)
  • If you are using IE 8 or lower, we recommend upgrading to IE 9 or using Google Chrome. Earlier versions of IE 8 exhibit poor performance with our application and we recommend updating your browser to IE 9 or changing to Chrome.