php – Apache Benchmark – 并发和请求数量

前端之家收集整理的这篇文章主要介绍了php – Apache Benchmark – 并发和请求数量前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
基准测试文件说并发是同时完成多少个请求,而请求的次数是请求的总数.我想知道的是,如果我把并发级别为20的请求放在一起,这是否同时需要20个请求的5个测试,或者每个20个请求的100个测试.我假设第二个选择,因为下面列举的例子.

我想知道,因为我经常在一些测试博客上看到这样的结果:

Complete requests: 1000000
Failed requests: 2617614

这似乎是不可信的,因为失败请求的数量高于总请求数.

编辑:显示上述号码的站点http://zgadzaj.com/benchmarking-nodejs-basic-performance-tests-against-apache-php

或者是否会持续尝试,直到达到一百万次成功?嗯…

这意味着一个单一的测试,共有100个请求,始终保持20个请求.我认为你的误解是,请求都要花费相同的时间,实际上从来没有这样. ab而不是按20个批次发出请求,ab只需从20个请求开始,并在每次现有请求完成时发出一个新的请求.

例如,使用ab -n 10 -c 3进行测试将以3个并发请求开始:

[1,2,3]

让我们说#2第一次完成,ab替换第四个:

[1,4,3]

…然后#1可能完成,替换为第五:

[5,3]

…然后#3完成:

[5,6]

…等等,直到请求共有10个请求. (当请求8,9和10完成时,当然并发归档为0)

合理?

关于你的问题,为什么你看到的结果比整体请求更多的失败…我不知道答案.我不能说我已经看过了.你可以发布显示这个的链接或测试用例吗?

更新:在查看the source时,ab跟踪“Failed requests:…”行下面详细列出的四种类型的错误

>连接 – (源中的err_conn)当ab无法设置HTTP连接时递增
>接收 – (源中的err_recv)当ab的读取失败时,递增
>长度 – (源中的err_length)当响应长度与接收到的第一个良好响应的长度不同时,递增.
>异常 – (源中的err_except)当轮询连接套接字时(例如连接被服务器杀死)时,ab看到错误增加)

这些发生的逻辑和它们如何被计数(以及如何跟踪总坏数)是必然的,有点复杂.看来,当前版本的ab只应该根据请求计算一次失败,但也许这篇文章的作者使用的是以前的版本,它的计数不止一个?这是我最好的猜测.

如果你能够重现行为,肯定是file a bug.

原文链接:https://www.f2er.com/php/140103.html

猜你在找的PHP相关文章