Excessive Load Times and Blank Pages with Large Nav
PermalinkAll pages have the top nav (all pages), a breadcrumb nav, a nav showing all pages below the second level, and a nav showing all "featured" pages.
I cannot make any of these navs static, as the client is constantly adding and deleting pages (I actually expect the site to grow quite a bit), so I need a solution that will allow all these navs to remain up-to-date for the user.
Test 1: 11.375
Test 2: 11.415
Test 3: 7.251
Test 4: 11.393
Test 5: 12.373
I need to get the pages to load in one to two seconds. Any ideas on what more I can do to improve performance?
Basic Cache: On
Overrides Cache: On
Full Page Caching: On - If blocks allow it.
Full Page Cache Rebuild: Automatic
My environment information is attached.
That said, you may try updating to v5.6.1 which just released yesterday. It's roughly 33% faster on the sites I've tested the beta with.
Overall though, it sounds like you're between a rock and a hard place. Could you put some of those nav's in a Stack as straight HTML and paste the stack into a global area? This would still allow the client to update it without having to actually build the nav on every page load (which is almost certainly what's crushing you). A URL may help troubleshoot things as well.
I am actually working on a job that will export the nav at night (and on Event > on_page_update) to an XML file and creating blocks to read this XML file for all the navs.
What I don't understand is that the cache should be handling this, so what I am doing should be unnecessary. I just don't see any other options.
I have installed MISER, but the issue remained. MISER has since been removed.
I switch to APC caching, but the issue remained, so I switched back to the built in (Zend) caching.
Updated concrete > core > models > permission > category.php based on this post:http://www.concrete5.org/community/forums/installation/time-to-firs...
Updated concrete > core > models > collection_version.php to reduce db queries based on this:https://github.com/concrete5/concrete5/pull/737...
Updated the concrete > core > models > collection_types.php based on this:https://github.com/concrete5/concrete5/pull/741...
Modified the concrete > core > models > permission > access > model.php based on this post:http://www.concrete5.org/developers/bugs/5-6-0-2/page-load-time-inc... This modification reduced the “select paID, paIsInUse from PermissionAccess where paID = ?” query from 233 to 15 per page load (based on dbbbb from Remo, Mklyhttp://www.concrete5.org/developers/bugs/5-6-0-2/page-load-time-inc...
Updated concrete > core > models > page.php based on this:https://github.com/concrete5/concrete5/pull/739...
Updated concrete > core > models > block.php, concrete > core > models > collection.php, concrete > core > models > collection_version.php based on this post:http://www.concrete5.org/developers/bugs/5-6-0-2/page-load-time-inc...
The server has compression enabled and I have added future expire dates via the .htaccess file.
The site is hosted on a virtual dedicated server at Rackspace, who assure me that I have more than enough resources. I have several other sites on this server that all perform admirably.