Plone Tuning
Getting optimum performance from a complex or heavily used Plone site requires expertise. Jazkarta employs some of the leading engineers in the Plone community, with years of experience troubleshooting, tuning, and optimizing Plone sites. Performance tuning is included with Jazkarta's Plone Support packages and we also provide performance tuning as a stand-alone service.
Performance tuning is a three phase development process whose goal is to improve the responsiveness of Plone sites through work in the following areas:
- Identifying bottlenecks in source code, and making code changes to increase efficiency
- Developing and refining caching strategies to reduce load on the system architecture
- Recommending and deploying hardware upgrades
- Choosing optimal software configuration settings based on expected and observed usage patterns
Performance tuning work always starts with an assessment, followed by implementation and (optionally) load testing.
Site Assessment
The first phase of any performance tuning job is a site assessment, in which we analyze the site and determine what optimizations are needed. This work is done at a fixed price.
Site Audit - To prepare the assessment, we survey the site’s setup to get a full understanding of the architecture and existing configuration.
Recommendations and Best Practices - The deliverable of the site assessment is a detailed report of what we have found, with a cost estimate for the tuning work that needs to be done. This includes documentation of the current set up and technical recommendations for performance improvements. The recommendations will also include best practice guidelines for setting up caching, load balancing and related optimizations.
Implementation
In this phase of the work we implement the recommendations of the assessment. The amount of time required for this phase depends on the optimization that needs to be done. The work can include:
- Adjusting Zope’s built-in RAMCache and HTTPCache
- Configuring Plone’s caching setup with a caching proxy such as Squid or Varnish
- Load balancing using Pound and Zeo
- Profiling of page templates and Python code with the goal of optimizing long-running queries
- Adjusting caching of pages for anonymous vs. authenticated users
- Adding hardware resources (RAM/CPU/disk)
- LDAP caching
Note that for clients taking advantage of our cloud deployment services, adjusting hardware resources is extremely easy to do.
Load Testing
Jazkarta can perform optional (but highly recommended) load tests to measure the performance improvements gained by conducting the optimizations. This work includes writing the tests, running them before and after the optimizations, and delivering a report. The key advantage of this work is that it provides quantifiable measurements that can be used to assess the success of the performance tuning. The amount of time required for this phase depends on the number of tests and complexity of the site.