请求处理时间与每秒请求数之间的关系

时间:2010-12-25 06:18:18

标签: php apache http

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

1 个答案:

答案 0 :(得分:1)

这取决于您的脚本使用的资源。

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

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

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

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

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

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