问题标签 [apachebench]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
apache - NodeJS 和 apache 基准测试的奇怪行为
我正在测试 nodejs (0.8.11)。
使用以下服务器应用程序:
我运行了 apache 基准测试:
ab -r -v 4 'http://127.0.0.1:1337/'
我得到以下输出:
ab的输出:
并且认为默认请求数不是 ab 手册中指定的 1,我尝试了:
我得到相同的输出(日志中有很多“命中!”)
这里发生了什么?
这是特定于节点的,我已经用我的码头应用程序尝试过同样的ab -c 1 -n 1
方法,只有 1 次记录命中......
注意:我尝试过卷曲节点服务 - 只有 1 次“命中!” 在日志中...
node.js - NodeJS 基准测试
我做了基准测试,比较什么是更快的 NodeJS 或 Apache + PHP?
当我测试“Hello world”应用程序节点时速度更快,但当我尝试使用 http.get 函数时,情况就完全不同了。
为什么 NodeJS 变得这么慢?它在 http.get 中处理吗?或者是什么?
测试环境
1.你好世界应用程序:
节点代码:
PHP代码:
结果:
标题
ab -n 10000 -c 10 主机名 。
10.000 个请求,10 个并发(以秒为单位的时间)
ab -n 10000 -c 100 主机名
10.000 个请求,100 个并发(以秒为单位的时间)
ab -n 100000 -c 300 主机名
100.000 个请求,300 个并发(以秒为单位的时间)
2. 拉取提要应用:
节点代码:
PHP代码:
结果:
* ab -n 100 -c 10 主机名 *
100 个请求,10 个并发(以秒为单位的时间)
* ab -n 1000 -c 10 主机名 *
1000 个请求,10 个并发(以秒为单位的时间)
* ab -n 10000 -c 100 主机名 *
10.000 个请求,100 个并发(以秒为单位的时间)
* ab -n 10000 -c 50 主机名 *
10.000 个请求,50 个并发(以秒为单位的时间)
apachebench - Apache Bench:所有并发请求的平均值与平均值
这两个字段有什么区别?:
- 每个请求的时间(平均值)
- 每个请求的时间(平均值,所有并发请求)
他们每个人是如何计算的?
样本输出:
为什么差别很大?
python - Apache bench Connection refused (61) apr_socket_recv
I have a similar issue with this ab is erroring out with apr_socket_recv: Connection refused (61), and I have tried upgrading the new apache bench but the problem still exists. I have no idea whether the problem lies in apache bench or the server. I am using python Gevent Server with bottle framework.
Apache bench version
Trace error
node.js - Apachebench 提出的请求比我要求的要多
我正在尝试使用 apachebench 发出一些请求来测试我的服务器。然而,它经常提出比我要求的更多的请求。我正在使用它来测试使用 express 的 node.js 服务器。
这似乎很挑剔,因为有时它只会发出一个请求,但有时它会发出 10 到 100 次请求。不好的部分是它仍然只是报告它只提出了一个请求。难道我做错了什么?这与 node.js 是异步的有什么关系吗?
其他人在使用“ab”对 node.js 服务器进行基准测试时遇到问题吗?
node.js - 在没有集群的情况下,Node.js 在 ab 中要好得多,我缺少什么?
更新 1:@BagosGiAr 使用非常相似的配置进行的测试表明集群总是应该表现得更好。也就是说,我的配置有问题,我请你帮我找出可能的问题。
更新 2:我想深入研究这个问题。我已经在 LiveCD* (Xubuntu 13.04) 上进行了测试,相同的节点版本。首先,Linux 的性能比 Windows 好得多:-n 100000 -c 1000
没有集群时为我 6409.85 reqs/sec,集群时为 7215.74 reqs/sec。Windows build 肯定有很多问题。我仍然想调查为什么这种情况只发生在我身上,因为一些具有类似配置的人表现更好(并且集群也表现良好)。
*应该注意的是,LiveCD 使用 RAM 文件系统,而在 Windows 中我使用的是快速 SSD。
这怎么可能?cluster
模块的结果不应该更好吗?规格:Windows 7 x64,双核 P8700 2.53Ghz,4GB RAM,Node.js 0.10.5,ab 2.3。测试命令行是ab -n 10000 -c 1000 http://127.0.0.1:8080/
.
基准测试结果 ~ 2840.75 reqs/second:
使用集群模块:
...并且使用相同的基准,结果最差:849.64 reqs/sec:
http - apachebench(ab) 为发布数据附加新行
尝试使用 ab 对 post 请求进行基准测试,但在文件中查找 post 数据将附加一个新的空白行。这个问题有什么解决办法吗?
ab 命令是
查看post数据,找到
http - 如何使用 apache bench 提交带有 json 输入的 GET 请求?
对我们服务的请求如下所示:
我正在尝试使用 ApacheBench 来测试基准测试。这是我正在使用的电话:
此调用通过,并导致错误,因为预期的 json 数据不存在。ab 中是否有办法提供必要的 json 以及此请求。我看到有 -p 和 -u 命令来指定输入文件,但这些是用于放置和发布的。
linux - Apache Bench 显示高“连接”时间
我正在尝试使用 apache bench 在我们的 API 服务器上进行一些非常简单的基准测试,我知道它不是负载测试网络服务器的理想工具,但这不是重点。
我们有几台服务器和几台虚拟机(托管在这些服务器上)。它们都运行相同的 nginx、uwsgi 和一个cherrypy webapp 堆栈。我可以在新服务器(没有VM)上apachebench,结果如下:
如您所见,这里的奇怪之处在于请求大多在 12 毫秒内得到处理。但有些请求需要十倍以上的时间。显然问题出在“连接”阶段,不管是什么。
我可以通过查询任何其他服务器或 VM 的任何服务器或 VM 可靠地重现此效果。但是,对 localhost 的查询总是很快。
此外,缓慢的请求似乎是均匀分布的,即使只使用 ab 执行 50 个请求(并发设置 1),我也会收到一些缓慢的请求(尽管有时需要几次尝试)。
为了进一步查明问题,我只知道对 nginx 的 hello world 页面进行基准测试,该页面显示完全相同的行为(所以它不是我们的应用程序)。
当我第一次注意到这个问题时,我还注意到大量的“TIME_WAIT”连接,我尝试调整一些 sysctl 标志,TIME_WAIT 现在少了很多,但问题仍然存在。
我尝试了各种 sysctl 设置都无济于事。
所有服务器都是采用 Intel 处理器的中等新机器,它们都运行 Ubuntu 服务器,但版本不同:10.10、12.10 和 13.04。
为了完整起见,我尝试在两个 Google Compute Engine 虚拟机上针对 nginx 的首页运行相同的基准测试,但它们没有显示相同的行为。
任何帮助将不胜感激,如果缺少任何信息,我很乐意修改我的帖子:)。
编辑:
在将时钟与 ntpdate 同步后,我运行了一个 Python 脚本,它只打开了一个从 host-3 到 host-4 的套接字并再次关闭它。如果该过程花费的时间超过 0.5 秒,则会记录确切的时间范围。我在两台服务器上运行 tcpdump 时运行了这个,这是一些输出,请注意在某些时候传输一些数据包大约需要一秒钟。问题是,我真的不知道如何解释这些结果。
主持人3:
Host-4(大约在同一时间范围内):
apache - 是什么限制了具有大量线程的 Apache 配置的性能?
我们在 Linux 3.8 上使用 Apache 2.2 和 mod_wsgi 配置来测试它在大量并发流量下的行为。我们使用 ApacheBench (v2.3) 从同一台机器创建流量。
我们的设置在 1000 个线程(10 个进程和 100 个线程)下运行良好,但在尝试从那里扩展时遇到了问题。对于 10000 个线程(10 个进程 1000 个线程),服务器实际上变得更慢,并且在相同数量的并发请求下开始执行非常糟糕。
大量 Apache 线程的性能限制因素是什么?为什么 10000 个线程的性能比 1000 个线程差?到底是什么限制了线程的数量?我们意识到,在通常的 Web 服务上,10000 个并发连接不是日常业务,但我们正试图更好地了解 Web 服务器的可伸缩性和不同类型的 Web 服务器。
这是我们为 1000 个线程设置的 mpm 工作线程,效果非常好。
Mpm worker 设置为 10000 个线程。这个设置慢了 5 倍。