OpenResty® 通过使用 Lua 扩展 NGINX 的可扩展 Web 平台

OpenResty XRay

为 OpenResty 及更多场景打造的先进可观测性

×

限时优惠

立即请求 试用 并获取诊断 报告
Learn more
最新! OpenResty 1.25.3.2 现已发布!
最新! OpenResty 1.21.4.4 现已发布!
最新! 新的博客文章 OpenResty XRay 移动应用程序简介 已发布。
最新! 新的博客文章 使用 OpenResty XRay 在 PHP 进程中定位大型内存对象 已发布。
最新! 新的博客文章 在 OpenResty Edge 中为网关服务器启用自动健康检查 已发布。

基准测试

章亦春 , 2012 年 4 月 19 日(创建于 2011 年 6 月 21 日)

HelloWorld

测试 HelloWorld 服务器的性能并不意味着很多事情,但它确实告诉我们性能上限在哪里。

基于 OpenResty 的 HelloWorld 服务器在 入门 文档中有所描述。

以下是使用命令 http_load -p 10 -s 5 http://localhost:8080/ 在我的 ThinkPad T400 笔记本电脑上使用 ngx_openresty 1.0.10.1 获得的结果

139620 fetches, 10 max parallel, 1.67544e+06 bytes, in 5.00001 seconds
12 mean bytes/connection
27923.9 fetches/sec, 335087 bytes/sec
msecs/connect: 0.0531258 mean, 4.076 max, 0.014 min
msecs/first-response: 0.258796 mean, 5.353 max, 0.067 min
HTTP response codes:
  code 200 -- 139620

因此在我的笔记本电脑上,对于单个 worker nginx 服务器,我们获得了约 28k r/s。负载下 node 进程的内存占用为 38.0m VIRT,2.5m RES。

为了比较,使用 nginx + php-fpm 5.2.8 的 HelloWorld 服务器提供了约 6k r/s

http_load -p 10 -s 5 url
29703 fetches, 10 max parallel, 326733 bytes, in 5 seconds
11 mean bytes/connection
5940.6 fetches/sec, 65346.6 bytes/sec
msecs/connect: 0.0394686 mean, 1.172 max, 0.02 min
msecs/first-response: 1.62616 mean, 6.744 max, 0.719 min
HTTP response codes:
  code 200 -- 29703

以及 node.js v0.6.1 产生了 10k r/s

51206 fetches, 10 max parallel, 614472 bytes, in 5 seconds
12 mean bytes/connection
10241.2 fetches/sec, 122894 bytes/sec
msecs/connect: 0.0356567 mean, 1.316 max, 0.019 min
msecs/first-response: 0.916395 mean, 14.236 max, 0.077 min
HTTP response codes:
  code 200 -- 51206

负载下 node 进程的内存占用为 629m VIRT,50m RES。

针对 Mac OS X Lion 用户

请注意,Mac OS X Lion 存在已知问题,需要在尝试复制我们的基准测试结果之前在您的系统上修复这些问题。

简而言之,使用 此修复 提高可用短暂端口的数量。

根据 此帖子 编译最新版本的 ab(Apache 的基准测试工具)。

然后,ab -k -c10 -n10000 -t1 -r 'http://127.0.0.1:8080/' 将提供基准测试结果。

否则,使用另一种轻量级 HTTP 负载测试工具 weighttp 以及调用 weighttp -k -c10 -n10000 'http://127.0.0.1:8080/' 进行基准测试。