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

开发技术 作者: 2024-07-25 11:50:02
基准测试文件说并发是同时完成多少个请求,而请求的次数是请求的总数.我想知道的是,如果我把并发级别为20的请求放在一起,这是否同时需要20个请求的5个测试,或者每个20个请求的100个测试.我假设第二个选择,因为下面列举的例子. 我想知道,因为我经常在一些测试博客上看到这样的结果: Complete requests: 1000000 Failed requests: 2617614 这似乎是不可信
基准测试文件说并发是同时完成多少个请求,而请求的次数是请求的总数.我想知道的是,如果我把并发级别为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.

原创声明
本站部分文章基于互联网的整理,我们会把真正“有用/优质”的文章整理提供给各位开发者。本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
本文链接:http://www.jiecseo.com/news/show_50519.html