问题标签 [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.

0 投票
0 回答
696 浏览

caching - memcache 服务器在通过 AB(Apache Benchmark)的大量请求时失去连接

上周我们在总共有 400k 行和大约 220 MB 的 mysql 服务器上遇到了一个非常大的问题,所以我们决定开始使用 memcache。在更改整个脚本之前,已经准备好测试页面并使用 apache 基准测试(我不确定它是否是正确的测试方法)

当我使用上面的命令测试更多请求时,memcache 在 25000 个请求后开始断开连接。

这是test.php的示例代码

?>

从 MySQL 中提取的数据约为 120 KB

memcached cachesize = 1024 也尝试了 2048

内存缓存 maxconn = 4096

看来mysql服务器高流量引起的问题在memcache之后会得到解决,但是memcache断开是当前的问题。似乎这次 mysql 服务器可以工作,但 memcache 会断开连接。

任何想法都会有用。谢谢。

0 投票
1 回答
1214 浏览

http - 一个简单的 Dart HTTP 服务器挂在 Apache Bench 上

我有这个Google Dart测试程序:

它在 Chrome 和 Firefox 上运行良好,我收到了sup消息。

但是,一旦我尝试使用 Apache Bench,它就会挂起(ab挂起):

您可以ab通过安装 Apache HTTP 服务器找到它,它将位于该bin文件夹下。

附带说明:是否有其他一些类似于ab我可以使用(并且不会挂起)的基准测试工具?

0 投票
0 回答
260 浏览

benchmarking - 无法在 REST Web 应用程序上使用 ApacheBenchmark 运行基准测试

我想使用 ab 对两个简单的 REST web 框架(RESTlet 和 RESTfulie)进行基准测试我使用这两个框架(一个 hello world)部署了一个非常简单的应用程序,然后我尝试运行这个命令:

但我总是得到这个错误:

对本地主机进行基准测试(请耐心等待)...apr_pollset_poll:指定的超时已过期(70007)

谁能告诉我我的问题是什么?或者我可以使用哪种基准测试工具来测试 REST Web 应用程序我猜 ab 对 REST 过敏,因为它在 apache/php 服务器上完美地工作。

0 投票
1 回答
523 浏览

python - 当我添加`-k`时,为什么ApacheBench对龙卷风的测试会中止?

我像这样启动一个龙卷风 http 服务器:

我想用标头输入请求,Connection: keep-alive然后设置no_keep_aliveTrue.

当我跑步时

输出

当我删除时-k,一切正常。

0 投票
2 回答
1669 浏览

php - Apache Bench:为什么会有这么多 503?

我在 DreamHost 上运行专用服务器:四核,4GB RAM。

Linux (Debian)、Apache、PHP(使用 XCache 进行操作码缓存)、MySQL。

我查询的 URL 每次都有 18 个 MySQL 查询。

我想知道为什么当我执行“ab -n 500 -c 50 http://< url >/”时会得到以下结果:

所有 377 个失败的请求都是 503。这可能是什么原因造成的?在执行此操作时运行top,我的处理器飙升至约 24%,但并没有对它征税太多。

我的 CMS 表示,单次加载页面,加载基类需要 0.0017 秒,控制器执行时间需要 0.1711 秒,总执行时间为 0.1731 秒,使用 2.887 MB 内存。

ab -n 100 -c 10总是有 0 个失败的请求,但似乎任何有超过 25 个并发连接的东西都有一堆失败的连接。

我预计下周会同时出现大量流量,我怎样才能最好地准备我的服务器?这会保持原样吗?

编辑:来自我的 httpd-mpm.conf 文件,该文件是通过 httpd.conf 包含的

0 投票
1 回答
394 浏览

ruby-on-rails - 我是否正确使用了 ApacheBench?

在视频控制器 - 显示动作中,我尝试了两种情况。第一个使用increment_counter, 并直接写入数据库:

第二种方法使用该save方法。

在 ApacheBench 中,我这样做:

视频 ID 为 18。我确保views_count在每次运行时通过Video.find(18).update_attribute(:views_count, 18).

在两种情况下运行 ApacheBench 后,views_count都保持在 100。我想increment_countersave方法更准确,因为它直接写入数据库。

我的卧推正确吗?

0 投票
2 回答
7362 浏览

node.js - Node.js 在大量并发连接中苦苦挣扎

我正在开发一个有点不寻常的应用程序,其中 10k 个客户端被精确计时,以每 3 分钟左右一次尝试一次提交数据。这个“ab”命令相当准确地模拟了现实世界中的一个弹幕:

我在 rackspacecloud VPS 实例上的 Ubuntu 12.4 上使用 Node.js 来收集这些提交,但是,我看到 Node 的一些非常奇怪的行为,即使我删除了所有业务逻辑并将 http 请求变成了 no-同上。

当测试完成大约 90% 时,它会挂起很长一段时间。奇怪的是,这始终发生在 90% - 对于 c=n=10k,在 9000;对于 c=n=5k,在 4500;对于 c=n=2k,在 1800 处。测试实际上最终完成,通常没有错误。但是 ab 和 node 日志都显示持续处理直到大约 80-90% 的测试运行,然后在完成之前停顿很长时间。

当节点正常处理请求时,CPU 使用率通常在 50-70% 左右。在挂起期间,CPU 上升到 100%。有时它保持在 0 附近。在不稳定的 CPU 响应和它似乎与实际连接数(仅完成百分比)无关的事实之间,我不怀疑垃圾收集器。

我已经在本地主机和远程服务器上尝试过这个运行'ab' - 效果相同。

我怀疑与 TCP 堆栈有关的东西,可能涉及关闭连接,但我的配置更改都没有帮助。我的变化:

  • ulimit -n 999999
  • 当我听()时,我将积压工作设置为 10000

Sysctl 更改为:

我还注意到我倾向于在内核日志中获取此消息:

我对这个消息感到困惑,因为 TCP 积压队列应该足够深,不会溢出。如果我禁用同步 cookie,“发送 cookie”会转到“断开连接”。

我推测这是某种 linux TCP 堆栈调整问题,我已经阅读了我在网上可以找到的所有内容。我尝试过的一切似乎都不重要。有什么建议吗?

更新:尝试使用 tcp_max_syn_backlog、somaxconn、netdev_max_backlog 并将 listen() backlog 参数设置为 50k,但行为没有变化。仍然会产生 SYN 洪水警告。

0 投票
1 回答
4171 浏览

ruby-on-rails - Apache 基准测试 multipart/form-data

我在使用 apache 基准发布文件时遇到了一个奇怪的问题。

我需要强调一个处理文件上传的功能。所以,我搜索了一下,发现了一篇描述如何正确构建帖子文件的帖子。它的内容看起来像:

ab线是这样的:

当 ab 发出请求时,生成的标头如下:

预期的回报是提高 params.inspect,让我看看数据是否到达另一端。如果我删除边界,我可以看到参数中收到的数据,但这不是我想要的。我想上传文件。

有人有小费吗?我会很感激的。

0 投票
3 回答
3413 浏览

php - 在本地服务器上使用 apache bench

我想通过 apache bench 测试我的网站负载(网站写在 php 上)。

我有本地服务器(xampp),OC:windows。

在 apache/bench 目录中有文件 ab.exe,这意味着 apachebench 安装在我的本地服务器中是吗?

我有本地站点 localhost/my_test,我想在这个站点上模拟并发 1000 请求,在 CMD 中我写了这个命令:

ab -c 1000 本地主机/my_test

CMD 的回答是: 'ab' 不是内部或外部命令、可运行程序或批处理文件。

请告诉我,我哪里错了?

0 投票
1 回答
2725 浏览

nginx - 作为 nginx 服务器上 Apache ab 测试的结果,每秒请求值非常低

我正在以下设置上测试我的新站点 * 2 个 m1.large ec2 实例作为弹性负载均衡器后面的 Web 服务器 * 两个 Web 服务器都安装了 memcache/apc/nginx/php-fpm * 1 个 m1.large ec2 实例用于 mongo db我从远程服务器运行它, ab -n 100 http://beta.domain.com/ 我得到以下结果

APC命中率在98%左右。此外,我在进行此测试时正在检查 memcached 日志文件,我可以看到 ab 正在访问两台服务器并访问 memcached 上的值(全部命中,没有未命中)。但 RPS 值仍然是 0.79。这不是很低吗?我错过了这里的重点吗?

编辑

此外,所有静态内容(css、js、图像)都从 Amazon S3 以 gz 格式提供,并且有 1 年的到期日期。

*编辑 2 *

我用参数运行了相同的测试,-c 50结果如下

** 负载生成 **

我猜ab是这样做的,不是吗?抱歉,我对基准测试很陌生 :) 我还添加-c 50并再次运行了测试。见上面的结果。

** 测试页面 **

此页面列出了 20 个带有图像、描述等的产品。进行一些后端计算,但结果都缓存在 memcache 中,因此它实际上从未命中数据库 (mongo)。我可以从 memcache 日志文件中看到这一点。

** 还有什么 **

这是vmstatab 测试期间在其中一台服务器上的结果

iostat