我想将 Linux 上的 ApacheBench (ab) 工具保存到文件中。当我使用 -v 2 运行它时,它会在我的 ssh 窗口中显示一些结果。如何将这些数据移动到一个文件中并确保它不再显示在 ssh 上?我已经尝试过 > file.txt 但它不起作用,并且仍然在我的 ssh 窗口中显示数据。
我想在我的Web应用程序上生成一个负载来测量/测试我的Web应用程序可以处理多少请求.目前我正在使用Apache Benchmark For POST请求.问题是Apache Benchmark只使用文件中的静态数据.我想要一个这样的工具,它从数据库中获取样本数据并随机或顺序地使用该数据生成负载.谁能告诉我哪种工具可用呢?该工具能否提供基准报告?
我需要加载测试或模拟2K连接到我的Web应用程序,看看它如何处理负载等.
如果我在笔记本电脑上运行apache bench,我猜它无法模拟这个?
这是否意味着我应该启动单独的VM来命中生产服务器,每个服务器每个可能有200个单独的连接?
我会做1个请求x 2K并发用户吗?
或者我可以玩500 x 400左右来获得相同的结果?
我已经做了基准测试,比较什么是更快的NodeJS或Apache + PHP?
当我测试'Hello world'应用程序节点更快,但是当我尝试使用http.get函数时,这是完全不同的故事.
为什么NodeJS变得这么慢?它在http.get中处理吗?或者是什么?
测试环境
CPU Intel(R) Core(TM) i5 CPU M 430 @ 2.27GHz Memory 2927MiB OS Ubuntu 12.04 LTS Test Platform Apache Bench NodeJS v0.8.2 Apache Apache/2.2.22 PHP PHP 5.3.10-1ubuntu3.2 with Suhosin-Patch (cli)
1. Hello world应用程序:
NodeJS代码:
var http = require('http');
http.createServer(function(req, res) {
res.writeHead(200, {"Content-Type": "text/html"});
res.end('hello world');
}).listen(8888);
Run Code Online (Sandbox Code Playgroud)
PHP代码:
<?php
echo "hello world"
?>
Run Code Online (Sandbox Code Playgroud)
结果:
ab -n 10000 -c 10主机名 .
10.000个请求,10个并发(以秒为单位的时间)
NodeJS 1.337 1.361 1.313 1.312 1.329 Apache+PHP 3.923 3.910 3.917 3.926 3.921 …
是否可以通过 Apache Bench 测试使用自签名证书的 Web 服务?默认情况下,它将失败SSL read failed - closing connection。我无论如何都找不到让它忽略 SSL 失败的方法。
$ ab -n 1 -c 1 https://localhost:8080
Benchmarking localhost (be patient)...SSL read failed - closing connection
..done
Run Code Online (Sandbox Code Playgroud)
此外,如果这是不可能的,那么有人知道允许这样做的替代工具吗?
哪个字段是最大响应时间和最小响应时间以及apache bench结果中的平均响应时间?
这是一个例子.在apache bentch结果中,"每个请求的时间"是689.946
Time per request: 689.946 [ms] (mean)
Run Code Online (Sandbox Code Playgroud)
我觉得 ,
"Time per request" = average response time
min "Total" = smallest response time
max "Total" = largest response time
Run Code Online (Sandbox Code Playgroud)
但是,为什么"每个请求的时间(689.946)"大于最大总数(最长请求680)?
Concurrency Level: 1000
Time taken for tests: 0.690 seconds
Complete requests: 1000
Failed requests: 0
Write errors: 0
Total transferred: 355000 bytes
HTML transferred: 7000 bytes
Requests per second: 1449.39 [#/sec] (mean)
Time per request: 689.946 [ms] (mean)
Time per request: 0.690 [ms] (mean, across all concurrent requests) …Run Code Online (Sandbox Code Playgroud) 我在Web服务上使用apache Bench运行基准测试。我知道测试中的1-2个请求将在测量期间超时(这是一个Web框架问题)。并且当发生超时时,将ab退出该消息apr_pollset_poll: The timeout specified has expired (70007),并且不显示结果。我想获得忽略这些超时测试的测量结果(或也对它们进行计数,但仅将超时值用作响应时间)。有可能ab吗?
编辑:我使用的命令是
ab -n 1000 -c 10 http://localhost:80
Run Code Online (Sandbox Code Playgroud)
我调查了ab源代码,从我看到的结果来看,不可能忽略这些错误。也许有一个实现这种功能的叉子?
我有一个通过 http POST 接受图像文件的网络服务,我用 发送它们curl,例如:
curl -X POST -F "image=@ta1.jpeg" -F "image=@ta2.jpeg" http://domain.tld/upload
Run Code Online (Sandbox Code Playgroud)
我正在尝试使用 apache bench ( ab) 来测试并发请求。我看到ab可以选择-p发布数据,但我认为这需要 JSON 内容...我尝试使用postmanecho 服务将图像编码为 JSON:
curl -X POST -F "image=@ta1.jpeg" -F "image=@ta2.jpeg" http://www.postman-echo.com/post
Run Code Online (Sandbox Code Playgroud)
将输出保存到文件,并使用 的ab选项发送该文件-p,但会产生服务器错误。
有关如何使用 apache bench 测试 POSTing 图像的任何提示吗?
我有一个 Apache Bench POST 测试命令,例如:
ab -p test.json -n 1000 -c 100 -T "application/json" "http://localhost:8080/test"
然而,我的 test.json 非常简单,例如:
{"foo": 1}
是否可以直接将其读取到ab命令中,而无需文件引用?就像是:
ab -p '{"foo": 1}' -n 1000 -c 100 -T "application/json" "http://localhost:8080/test"
(我知道这行不通,只是想知道是否有一个好的 linux 文件模仿技巧之类的)
目前我唯一的解决方法是:
echo '{"foo": 1}' > test.json && ab -p test.json -n 1000 -c 100 -T "application/json" "http://localhost:8080/test" && rm test.json
但我发现这有点太笨拙了。
我正在使用ApacheBench(ab)对我的网站进行压力测试.当我指定一个方法-m POST和一些postdata时-p {datafile},我收到了消息
不能将POST与其他方法混合使用.
问题是我实际上并没有将POST与其他方法混合使用.这是我的完整命令:
ab -m POST -p postdata.txt -n 1000 -c 100 http://example.com/
Run Code Online (Sandbox Code Playgroud) apachebench ×10
benchmarking ×4
apache ×3
http ×3
load-testing ×3
bash ×1
http-post ×1
image ×1
java ×1
linux ×1
node.js ×1
performance ×1
post ×1
ssl ×1
testing ×1
unix ×1