EZ Publish Performance
Views:
EZ Publish is extremely powerful and complicated. It's amazing that eZ wrote it in PHP and not Java - bloody good show chaps! Anyway, it's slow if you don't tune it.
You need to get Linux (or wink2k8) in order along with Apache and MySQL. Make sure you are using FastCGI and eaccelerator. Also install ImageMagick. Apache can cache content and file handles for you. Use it. Split your site across multiple domain names - even if these point to the same server. At the very least run your administration interface under a different domain name and not under the domain of your public web site.
If you can avoid it, do not install all of the content classes and templates that come bundled. Keep your staging and production sites clean, and export any of the bundled classes you need from a development site and import them in to your staging/production sites. (You are building this on a development server right?).
Override the entire cronjob.ini configuration and make sure you know exactly what is running and when. Push as much work in to cronjobs as possible. You can limit ez pub's ability to automatically flush caches and have a cronjob routinely flush them out and rebuild them.
Check your extensions. Some of the ones on the community web site are not that new/good/fast. You may be better of rewriting them or testing out some others.
There are some settings you can change, below. You also need to get to grips with the templating. Ez publish templating has some features to help control caching but most of these are red herrings. Lean how the templates are organised and why they've been done that way before you jump in. Keep templates small and split in to multiple files that you can reuse. Be careful in the forums because there is a lot of old code and techniques passed around in there and while they might work OK they might not be the "right" way.
In the configuration you'll want this in settings/siteaccess/<your public site> or settings/override: site.ini.append.php:
# not letting users create accounts? [SiteAccessSettings] RequireUserLogin=false ShowHiddenNodes=false [ContentSettings] TranslationList= ViewCaching=enabled [TemplateSettings] TemplateCache= enabled TemplateCompile= enabled TemplateOptimization= enabled NodeTreeCaching=enabled Debug=false ShowUsedTemplates=disabled [OverrideSettings] Cache=enabled
If you are making complex relationships between content classes then you'll need to let ez pub know so that it can check whether or not to flush content caches when your editors update content. Read the manual for this one. viewcache.ini.append.php:
[ViewCacheSettings] SmartCacheClear=enabled # common - common relations made on object level # embedded - embedded objects # linked - linked objects # attribute - relations made with attributes of 'object relation' or # 'object relations' datatypes # reverse_common - reverse common relations (objects that relate the one currently # being published) on object level # reverse_embedded - objects that have current object as embedded # reverse_linked - objects that have linked current object # reverse_attribute - objects that have current object as related in their attributes. # ClearRelationTypes[] ClearRelationTypes[]=common ClearRelationTypes[]=reverse_common ClearRelationTypes[]=reverse_embedded ClearRelationTypes[]=reverse_attribute ClearRelationTypes[]=reverse_linked ClearRelationTypes[]=attribute #ClearRelationTypes[]=embedded #ClearRelationTypes[]=linked [featured_page] DependentClassIdentifier[] DependentClassIdentifier[]=genre DependentClassIdentifier[]=front_page DependentClassIdentifier[]=folder MaxParents=2 ClearCacheMethod[] ClearCacheMethod[]=object ClearCacheMethod[]=parent [news] DependentClassIdentifier[] DependentClassIdentifier[]=front_page DependentClassIdentifier[]=folder MaxParents=2 ClearCacheMethod[] ClearCacheMethod[]=parent ClearCacheMethod[]=object [your content class name] ...
In the configuration you'll want this in settings/siteaccess/<your admin site>: site.ini.append.php:
[ContentSettings] CachedViewPreferences[full]=admin_navigation_content=0;admin_navigation_details=0;admin_navigation_languages=0;admin_navigation_locations=0;admin_navigation_relations=0;admin_navigation_roles=0;admin_navigation_policies=0;admin_navigation_content=0;admin_navigation_translations=0;admin_children_viewmode=list;admin_list_limit=1;admin_edit_show_locations=0;admin_leftmenu_width=10;admin_url_list_limit=10;admin_url_view_limit=10;admin_section_list_limit=1;admin_orderlist_sortfield=user_name;admin_orderlist_sortorder=desc;admin_search_stats_limit=1;admin_treemenu=1;admin_bookmarkmenu=1;admin_left_menu_width=13 TranslationList= [TemplateSettings] TemplateCache=enabled TemplateCompile=enabled TemplateOptimisation=enabled NodeTreeCaching=enabled Debug=disabled ShowUsedTemplates=disabled [OverrideSettings] Cache=enabled
