Last updated March 10, 2023
When it comes to making your Drupal site faster there are two main areas of focus: performance and scalability.
Performance is how fast a single page can be served. This is affected by things like how long it takes your code to execute, the speed of the required database queries, settings in your web server, and other bottlenecks in the process of servicing a single request. Your best bet for improving this is ensuring proper configuration of modules. Then use a profiler to locate bottlenecks in your code. Either optimize them, cache the result to eliminate repeat processing, or both. Performance applies to the front-end of your site as well: the HTML, CSS and JavaScript impacts the performance of the user's browser.
Scalability refers to how many concurrent pages your site can serve without adversely affecting performance. This is affected by limitations like how many requests the server can handle before it slows down, and considerations in Drupal's code that allow for mitigating these limitations. It can be improved by making changes to your infrastructure that increase its ability to handle more requests quickly.
Example tasks
- Configure Drupal core and contributed modules for optimal performance
- Test a site's performance and ability to handle multiple concurrent users
- Make a Drupal site faster by using various caching systems like Varnish, Redis, and a CDN
Confidence
Our tutorials are up-to-date. There are other topics related to performance and scalability that we have not covered and are a work in progress. See the external resources for additional guidance on this subject.
Drupalize.Me resources
October 17, 2016 - 2:07am
I did some load testing to try and answer the question; How did moving our site from Linode to Pantheon affect the performance-measured in response time-of our site for both members and non-members?
Siege is a useful load testing tool to add to your performance testing tool kit. From the website: "Siege is an HTTP load testing and benchmarking utility. It was designed to let web developers measure their code under duress, to see how it will stand up to load on the internet. Siege supports basic authentication, cookies, HTTP, HTTPS and FTP protocols. It lets its user hit a server with a configurable number of simulated clients. Those clients place the server 'under siege.'"
Load testing is useful for testing the performance of your site, and the infrastructure that it runs on. There's nothing worse than having one of your blog posts end up on Hacker News and then having your site crumble under the load. Siege can simulate activity on your site, and you can then use your site from your browser as you normally would, while your siege is running and really get a feel for how your site responds under load.
This blog post will cover installing Siege on OS X and Linux, and running a basic load test with Siege.