Improve SugarCRM Search Performance By 300%

Project SucraloCRM is a collection of optimization efforts aimed at achieving the best possible SugarCRM performance, without having to add any new hardware.The project covers several components influencing SugarCRm performance - database server (MySQL) , application server (Apache and PHP) and the operating system (Ubuntu Linux).

We begin our optimization efforts with a small configuration change that will have a huge positive impact on performance. When you are looking to optimize an application which is built on top of on several other components, the first place to look for optimization ideas is on the application vendor website and forums. You are likely to get your best advice there.

SuagrCRM Performance Guidelines

Open source CRM Vendor SugarCRM provides there own basic performance guidelines. Since we are trying to solve search related performance issues, we will focus own efforts around a suspicious looking guideline: “Drop Absolute Totals From List Views”. When you search for a contact in SugarCRM, results are paged with 20 results per page. You can also see the total number of results your search query returned. Look at the screenshot below:

SugarCRM Contact Search Results Totals


As we saw in our baseline SugarCRM test results, when a search is performed in SugarCRM, the factor influencing search performance most is the number of results returned, and not the total number records that were searched. That was a bit strange, because SugarCRM only displays 20 results per page. But reading about the configuration option “Drop Absolute Totals From List Views” everything falls into place - the extra time required for a query with a larger result set to complete, is the time used to calculate the total count of the results set!!.

Test Results

We used OpenSTA to run a benchmark, ramping up 5 users who perform search for Contacts on 100K records in our SugarCRM instance. The blue bar represents search duration, in seconds, when the totals are hidden (disabled), while the orange bar represent total enabled results. The results are crystal clear - an improvement of 300% on average for search performance when totals are disabled.

CRM Search Performance Results

Discussion

Now, I honestly can’t understand why would SugarCRM show totals by default, when they are fully aware of the detrimental effect enabling this option has on search performance. The only drawback to disabling it is that you do not know how many results have been returned. Do we care? No. When you search for something on Google, do you ever take a look at how many results were returned?  What you do is browse the first, second, maybe third page for relevant results.

SucralosCRM Configuration Option 1:

Set Drop Absolute Totals From List Views to True, as explained in SugarCRM’s performance guide.

For more SugarCRM performance guidelines and other open source CRM news, register to our RSS Feed.

Comments

Leave a Reply