Drupal 8 Stress Test. Round 3

Check out out Drupal 8 stress test round 3

Drupal 8 release is coming this week, bringing some exciting times to our optimised hosting in Australia!

Earlier this month, we did production stress test of Drupal 8 RC2 to estimate if our High Performance VPS hosting platform is ready for Drupal 8. As the result of previous benchmarks, we applied additional fine tuning to boost Drupal 8 front-end performance and these 2 benchmarks could be reviewed as Making Drupal 8 Fly and Drupal 7.41 vs Drupal 8 RC2 Benchmarking Analysis.

PHP7 was able to outperform HHVM by serving 32.7% more responses in 33.3% less average response time.

The outcome of our past benchmarks was that Drupal 7 outperformed Drupal 8 2x times in production-ready environment, tests performed in our CloudVPS with 8CPUs and 8GB of RAM, CentOS 7.

Today we decided to run more benchmarks of Drupal 8, namely run 2 more tests:

  1. Drupal 8 running in PHP 7.0RC6, Nginx as static files cache (reverse-proxy mode) + Apache as the webserver
  2. Drupal 8 running via Nginx (no Apache) with PHP 7 and HHVM.

As in previous tests, we used http://loader.io and set our 1 minute test to send 1200 clients every second to the test Cloud VPS. The outcome of the test was quite amazing, showing PHP 7RC6 outperforming HHVM 3.9 quite noticeably.

The test methodology is the same as in our previous tests. Check this page for more information about test methodology.

Important to note, all tests hit HTTPS (SSL) version of the website. Nginx 1.9.5 was configured to use HTTP/2 module, allowing to serve all page assets in single connection.

The Cloud VPS runs in 6.5 cluster as PV guest. HVM PV guests show additional performance improvements of up to 25%.

Stress Test 1. Drupal 8 and PHP 7

In this test we use Apache as the webserver, Nginx as the reverse-proxy to cache static files and PHP 7 (via PHP-FPM) as the engine.

1200 clients per second, hitting Drupal 8 home page as anonymous users.

Drupal 8 and PHP 7 load test results

In our previous test (Making Drupal 8 Fly), this same setup (but using HHVM) was maxing out at 13542 responses received (the test stopped counting responses strictly at 1 minute 00 seconds since the test start) and the average response time was 4426ms. As you see in the picture above, PHP7 was able to outperform HHVM by serving 32.7% more responses in 33.3% less average response time.

Stress Test 2. Drupal 8 with PHP 7 and Nginx

In this test we configured Nginx to be the webserver, turning Apache off. Nginx was configured to serve static files directly and pass PHP requests to PHP-FPM service.

1200 clients per second, hitting Drupal 8 home page as anonymous users.

Drupal 8 and PHP 7 and Nginx load test results

With Nginx as the web server, you can see a slight increase in the number of responses received during 1 minute test (about 2% increase), with slight decrease in the average response time (about 5%).

Interestingly, the server resources utilisation dropped very noticable with Nginx, compared to Apache (see the picture below):

Drupal 8 and PHP 7 load test nmon results

Server resources utilisation with Nginx as the web server (Apache off) in the middle of the stress test.

No surprise, our good friend Apache was nearly taking the server down during our previous tests, with 100% CPU utilisation (check previous test page for the screenshot).

Stress Test 3. Drupal 8 + HHVM + Nginx

In this stress test we configured Nginx to be the webserver, turning Apache off. Nginx was configured to serve static files directly and pass PHP requests to HHVM service.

1200 clients per second, hitting Drupal 8 home page as anonymous users.

Drupal 8 and HHVM load test results

Surprisingly, HHVM + Nginx brought us unexpected results. Unlike HHVM + Apache (Nginx as the reverse proxy cache), pure Nginx talking to HHVM outperformed PHP 7. This may look totally confusing, however our stress tests outlined the (expected) benefit of using pure Nginx + PHP 7 or HHVM. In both cases, benchmark results were considerably higher than using Apache.

Drupal 8 and HHVM load test nmon output

nmon resources utilisation in the middle of the Stress Test 3 (Nginx + HHVM).

Summary

Apache vs Nginx, PHP7 vs HHVM performance load test graphs

Overall, both PHP 7 and HHVM performed well. However it is obvious that HHVM performs better with Nginx, where PHP7 performs better with Apache.

 

Get this fine tuned Cloud VPS template for your Drupal 8 or Drupal 7 hosting Today

For a limited time and to promote Drupal 8, we introduce unconditional A$10/mo discount for our 8x8 CloudVPS used in this Stress Test for anyone. Signup today and enjoy the fast Drupal 8.

Signup now

All Cloud VPS plans come with the Risk Free 30 days money back guarantee and 99.9% Uptime SLA!

Hosted in Australia!

 

Was this helpful?: 
5
Average: 5 (1 vote)
Ivan Grynenko's picture