问题标签 [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.
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 会断开连接。
任何想法都会有用。谢谢。
http - 一个简单的 Dart HTTP 服务器挂在 Apache Bench 上
我有这个Google Dart测试程序:
它在 Chrome 和 Firefox 上运行良好,我收到了sup消息。
但是,一旦我尝试使用 Apache Bench,它就会挂起(ab
挂起):
您可以ab
通过安装 Apache HTTP 服务器找到它,它将位于该bin
文件夹下。
附带说明:是否有其他一些类似于ab
我可以使用(并且不会挂起)的基准测试工具?
benchmarking - 无法在 REST Web 应用程序上使用 ApacheBenchmark 运行基准测试
我想使用 ab 对两个简单的 REST web 框架(RESTlet 和 RESTfulie)进行基准测试我使用这两个框架(一个 hello world)部署了一个非常简单的应用程序,然后我尝试运行这个命令:
但我总是得到这个错误:
对本地主机进行基准测试(请耐心等待)...apr_pollset_poll:指定的超时已过期(70007)
谁能告诉我我的问题是什么?或者我可以使用哪种基准测试工具来测试 REST Web 应用程序我猜 ab 对 REST 过敏,因为它在 apache/php 服务器上完美地工作。
python - 当我添加`-k`时,为什么ApacheBench对龙卷风的测试会中止?
我像这样启动一个龙卷风 http 服务器:
我想用标头输入请求,Connection: keep-alive
然后设置no_keep_alive
为True
.
当我跑步时
输出
当我删除时-k
,一切正常。
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 包含的
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_counter
比save
方法更准确,因为它直接写入数据库。
我的卧推正确吗?
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 洪水警告。
ruby-on-rails - Apache 基准测试 multipart/form-data
我在使用 apache 基准发布文件时遇到了一个奇怪的问题。
我需要强调一个处理文件上传的功能。所以,我搜索了一下,发现了一篇描述如何正确构建帖子文件的帖子。它的内容看起来像:
ab线是这样的:
当 ab 发出请求时,生成的标头如下:
预期的回报是提高 params.inspect,让我看看数据是否到达另一端。如果我删除边界,我可以看到参数中收到的数据,但这不是我想要的。我想上传文件。
有人有小费吗?我会很感激的。
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' 不是内部或外部命令、可运行程序或批处理文件。
请告诉我,我哪里错了?
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 日志文件中看到这一点。
** 还有什么 **
这是vmstat
ab 测试期间在其中一台服务器上的结果
和iostat