对实际应用程序进行负载测试

在本章中,我们学习了三种负载测试工具。现在,是时候对一些实际应用程序进行负载测试了。在本节中,我们将测试 Magento 2、Drupal 8 和 WordPress 4。所有这些开源工具都有其默认数据。

我们有三个配置了 NGINX 作为网络服务器的 VPS。其中一个 VPS 安装了 PHP 5.5-FPM,第二个安装了 PHP 5.6-FPM,第三个安装了 PHP 7-FPM。这三个 VPS 的硬件规格相同,我们要测试的所有应用程序的数据和版本也相同。

这样,我们将使用 PHP 5.5、PHP 5.6 和 PHP 7 对这些应用程序进行基准测试,看看这些应用程序在不同版本的 PHP 上的运行速度如何。

在本主题中,我们将不涉及配置服务器的 NGINX、PHP 和数据库。我们将假设 VPS 已配置完成,并且已安装 Magento 2、Drupal 8 和 WordPress 4。

Magento 2

所有 VPS 上都安装了 Magento 2,并启用了 Magento 的所有缓存。PHP OPcache 也已启用。运行测试后,我们得到了所有三个 Magento 2 安装的平均结果,如下图所示:

image 2023 11 06 08 57 50 932

在上图中,垂直线或 Y 轴表示每秒的交易量。从图表中可以看出,PHP 7 上的 Magento 2 每秒有 29 笔交易,而在相同硬件上使用 PHP 5.6 的相同 Magento 2 安装每秒有 12 笔交易。此外,在 PHP 5.5 上,同样的 Magento 安装每秒有 9 个事务处理。因此,在这种情况下,Magento 在 PHP 7 上的运行速度比 PHP 5.6 快约 241%,比 PHP 5.5 快约 320%。这是 PHP 7 相对于 PHP 5.6 和 PHP 5.5 的巨大进步。

WordPress 4

三个 VPS 上都安装了 WordPress。遗憾的是,WordPress 没有嵌入默认缓存,我们也不会安装任何第三方模块,因此没有使用缓存。从下面的图表中可以看出,结果还是不错的。启用了 PHP OPcache。

image 2023 11 06 08 58 42 164

从上图中可以看出,WordPress 在 PHP 7 中的运行速度比在 PHP 5.6 中快 135%,比在 PHP 5.5 中快 182%。

Drupal 8

我们使用相同的 VPS 运行 PHP 5.5、PHP 5.6 和 PHP 7。Drupal 8 的默认缓存已启用。在对 Drupal 8 的默认主页进行负载测试后,我们得到了以下结果:

image 2023 11 06 09 00 02 442

上图显示,Drupal 8 在 PHP 7 中的运行速度比在 PHP 5.6 中快 178%,比在 PHP 5.5 中快 205%。

在前面的图表中,所有这些值都是近似值。如果使用的是低功耗硬件,那么生成的数值会更小。如果我们使用功能更强大的多处理器专用服务器,并对网络服务器和数据库进行了优化,则会得到更高的值。需要考虑的一点是,PHP 7 的性能总是优于 PHP 5.6。

这里显示了一张组合图,它显示了 PHP 7 与 PHP 5.5 和 PHP 5.6 相比,不同应用程序的性能改进情况:

image 2023 11 06 09 01 13 737

总结

在本章中,我们讨论了一些负载测试和基准测试工具,如 JMeter、ApacheBench (ab) 和 Siege。我们使用每种工具进行了负载测试,并讨论了输出结果及其含义。最后,我们对 Magento 2、WordPress 4 和 Drupal 8 这三个著名的开源应用程序进行了负载测试,并在 PHP 7 和 PHP 5.6 中创建了每个应用程序的每秒事务处理量曲线图。

在下一章中,我们将讨论 PHP 开发的最佳实践。这些实践不仅限于 PHP,也可用于任何编程语言。