In our previous blog post Making Drupal 8 Fly we benchmarked Drupal 7 and Drupal 8 with our preferred benchmarking tool loader.io. The point was to increase the number of visitors per second during the 1-minute test and to reach the point at which our VPS is unable to send successful responses without timeouts. Refer to the article to read more about our setup and our approach.
During that test, we found such break point for Drupal 8 RC2 as 1.2K clients per second and provided benchmark results for Drupal 7 with the same 1.2K clients per second.
Today we decided to go even further and to find the break point of Drupal 7 same way we did to the Drupal 8 RC2 in the referred article.
Drupal 7 test: 2400 clients per second (SSL Port)
Below is the screenshot at which we indicate that even with 199 timeouts and the average response time increased by 863ms, we still received 23472 responses back, compared to 13542 in our Drupal 8 test. Doing final calculations, in our Drupal 7 test, we served 2x more clients per second and received 73% successful responses back compared to Drupal 8.
Below is the nmon output captured in the middle of the test. You can see that the bottleneck is the CPU and Disk I/O is around 0. The absence of Disk I/O means that waste majority of all operations are between CPU and memory.
Going even further, we enabled and configured Drupal 7 Memcache module (at the time of running our Drupal 8 benchmarks, the Memcache module for Drupal 8 didn’t seem to be ready yet).
Drupal 7: 2400 clients per second + Drupal Memcache module (SSL Port)
Surprisingly, enabling Memcached module made the response worse, but this could be specifics of our setup with HHVM and not PHP.