测试 XAMPP / Apache httpd 性能的最可靠方法

测试 XAMPP / Apache httpd 性能的最可靠方法

太长了;博士 测试和比较在不同计算机和云服务上运行的 XAMPP / Apache 服务器性能的最佳/最可靠方法是什么?如果我需要一个高级结果(只是比较不同选项之间的性能),测量浏览器响应时间就足够了吗?或者还有更好的选择吗?


我在用微软XAMPP四个不同齿轮上的三个版本(使用 PHP PHP 7.4、8.0 和 8.1):

  • 非常非常旧的 Windows XP 电脑
  • 装有 Windows 10 的旧电脑
  • 全新、超快的 Windows 11 电脑
  • 树莓派 3B+

此外,我还在带有 Linux 的 12 年历史 NAS 上以及 AWS、Digital Ocean 和 OVH 的几个云解决方案中使用 Apache 服务器(但不是整个 XAMPP)。

同时,在性能测试方面我还是一个完全的新手。在所有这些设备上测试服务网站/处理 API 请求的速度的最佳/最有前途或可靠的方法是什么?

就我而言,此类测试的范围或期望是非常高的水平。我只想自学:

  • 使用给定的硬件是否毫无意义(在实际计算机的情况下)
  • 服务配置/月费和 Web 服务器性能之间是否存在任何清晰可读的相关性(如果是云服务)

因此,我不期望任何复杂的结果、报告或数字。只有一个(或多个)因素可以让我区分/比较在不同硬件和云选项上运行的同一软件(我通常使用的)的结果。

由于我是这个主题的初学者,所以我想到的唯一想法是直接从浏览器手动调用每个请求并测量浏览器开发工具报告的响应时间。有更好的吗?


编辑: 澄清一下问题。我不想测试硬件。我想测试:

  • 完全相同的软件(XAMPP / Apache httpd)
  • 完全相同的版本
  • 在几个不同的硬件(或云)平台上运行

我是多个网络应用程序的作者(但我纯粹是一名开发人员,而不是开发人员,因此有这个问题)。所有这些都是纯粹内部的(内联网),根本不公开。他们都是:

  • 使用完全相同的平台(XAMPP)以完全相同的版本提供服务
  • 使用相同的语言(PHP)、框架(Yii 2)和版本开发
  • 由同一团队开发并使用相同的编码原则

基于以上内容,我们可以假设(可以吗?)即使这些都是不同的网络应用程序,但它们的差异几乎纯粹是业务(功能),因此它们的性能将与访问者数量和用于服务的硬件密切相关。

其中一些应用程序每天有 3-5 人访问/使用,有些则每小时 50 人(最多)。通过获得独特的解决方案来测试 XAMPP 在不同齿轮下的性能,我想回答自己的问题,例如:

  • 使用那台非常旧的 PC 是否足以为 XYZ 应用程序提供服务(每天有 3-5 个访问者),还是使用它毫无意义/无意义?
  • 我可以使用那台相当新的笔记本电脑作为每小时最多 25 次访问的 ABC 应用程序的辅助(备份)服务器吗?或者这样的硬件还不够吗?

抱歉,如果你看到我的问题并且毫无意义,但我是一个生态狂人,我想做几乎所有东西让我的旧硬件获得第二次生命、第二次机会或第二次任务。扔掉它是我考虑的最后一种情况。于是就有了这个问题。

答案1

但我是一个生态狂热分子,我几乎想尽一切努力让我的旧硬件获得第二次生命、第二次机会或第二次任务。

这是令人钦佩的,但旧的硬件非常耗电,并且在本地运行自己的服务器意味着您正在为您运行完整的服务器,并且仅运行您的工作负载。即使您几乎不使用服务器,也没有其他人分享服务器的功耗!

你需要考虑到这一点。让我们做为

非常非常旧的 Windows XP 电脑

空闲时功率可能为 20-30 W。完全使用的话,可能会用到200W(?)。真的要看情况!买能量计,计算出您的硬件在空闲期间以及模拟实际用例的工作负载期间的使用情况。
你是提供某种服务的人;例如,一个图书库管理工具,可以自动获取封面图像、搜索图书、插入图书。因此,编写一个触发这些典型工作负载的端点。触发它数百到数千次(取决于它们需要多长时间),并测量一只手需要多长时间,并将其关联起来。

除了您之外,没有人可以进行设置来评估特定硬件满足特定工作负载需要多长时间,以及一年内将使用多少电量。

这将是一些电子表格工作!制作一个电子表格,列出您的计算硬件每年使用多少小时(或:预期剩余运行时间)。您可以通过对其在此期间所服务的工作负载量进行下限、上限和最有可能的估计来实现这一点 - 对于工作负载,我指的是由您上面自己编写的基准模拟的单位。假设该基准测试服务了 10,000 次模拟用户交互,并且需要 20 分钟才能完成。您坐下来挠头(或者更好:您阅读自己的部署服务器的统计数据)并估计您的用户每年发出 200,000 到 2,000,000 个请求,您最好的猜测是 500,000 个。所以,每年 200,000/10,000 · 20 分钟 = 400 分钟 ~= 6.67 小时 到 2,000,000/10,000 · 20 分钟 = 4000 分钟 = 66.7 小时的努力工作。一年有8760分钟。现在您知道您的系统使用“空闲”电流消耗了多少小时,以及使用了“满载”功耗多少小时。

以小时为单位的示例:

机器:旧电脑

  • 空闲功率:20W
  • 工作功率:200W
  • 每 10,000 个请求的时间:0.33 小时
  • 场景:
    • 低负载(每年 200,000 个请求)
      • 6.67 小时工作 · 200 W = 1.33 kWh
      • 8753.33 小时闲置 · 20 W = 175 kWh
      • 总计:176 kWh
    • 高负载(每年 2,000,000 个请求)
      • 66.7 小时工作 · 200 W = 13.3 kWh
      • 8693.3 小时闲置 · 20 W = 173 kWh
      • 总计:186.3 kWh

机器:非常快的PC

  • 空闲功率:15 W(现代 PC 更擅长空闲!)
  • 工作功率:500W
  • 每 10,000 个请求的时间:0.006 小时
  • 场景:
    • 低负载(每年 200,000 个请求)
      • 0.0667 小时工作 · 500 W = 0.03 kWh
      • 8670 小时闲置 · 15 W = 130 kWh
      • 总计:130 kWh …

现在,对于云提供商来说,您根本无法知道您的工作负载消耗了多少电量。您只能对需要多长时间进行基准测试。然而,这是一个假设:“我使用的电量没有超过我所支付的费用。OvH 至少支付 0.20 欧元/千瓦时,因此,如果我每年为那里的虚拟机支付 50 欧元,其中一半是只是能源成本,它的使用不能超过 125 kWh”左右。做你的模特吧!

我会非常如果您最终更愿意运行旧电脑来满足您所需的工作负载,请感到惊讶。

相关内容