【问题标题】:relation between request processing time and no of requests per second请求处理时间与每秒请求数之间的关系
【发布时间】:2010-12-25 06:18:18
【问题描述】:

我的 PHP 脚本运行大约需要 7 秒,因为它从 Web 中的各种来源获取和处理数据。这与我每秒可以处理的请求数有什么关系?

【问题讨论】:

    标签: php apache http


    【解决方案1】:

    这取决于你的脚本使用什么资源。

    基本上,当您的脚本服务器、数据库服务器或您从中获取数据或达到第三方 API 请求限制的任何服务器上的 CPU、磁盘 I/O、内存不足时,游戏结束了。

    这通常与并发请求有关,而不是每秒的请求数 - 有多少请求可以同时从所有请求可用的池中访问它们所需的资源。这在现实生活中实际上要复杂得多,因为请求在其生命周期的不同部分访问不同的资源,而且您通常会在同一台服务器上处理针对不同脚本的请求,每个脚本具有不同的资源需求组合。

    长时间运行的请求与每秒请求数之间存在有趣的交互。通常,请求将花费 200 毫秒。如果您可以处理 50 个并发请求,这意味着您每秒可以处理 250 个请求。假设你只能处理 50 个并发请求,你每秒只能处理 7 个请求。

    在第一秒,您将有 7 个正在运行的脚本。第二名14人。第七名最多49人。然后,在第八个中,7 将因完成而释放,7 将从新请求中添加。

    在遇到实际资源使用问题之前,您可能会遇到 Apache 配置问题 - 您需要增加服务器/工作者的数量,因为您有一些非标准用例(即,大多数请求在不到一秒)。根据您的处理复杂程度,如果大部分时间都在进行网络 I/O,您可能能够处理数百个并发脚本。

    基准测试和其他性能分析是获取有关每秒请求数和/或并发连接数的更准确信息的唯一方法。

    【讨论】:

    • 你会推荐哪个工具进行基准测试,我需要在每个请求上传递不同的 GET 变量值(因为我已经实现了缓存)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-25
    • 1970-01-01
    • 2014-01-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多