81

我正在测试 eventlet,我收到了这个错误:

~>ab -n 10 -c 1 http://localhost:8090/
This is ApacheBench, Version 2.3 <$Revision: 655654 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking localhost (be patient)...apr_socket_recv: Connection reset by peer (54)
Total of 2 requests completed

该网站在 localhost:8090/ 上运行并返回 200 OK。

我对tomcat有同样的问题,网站再次运行良好。

可能是什么问题?

4

5 回答 5

180

我发现使用 127.0.0.1 而不是 localhost 有效:

ab -n 10 -c 1 http://127.0.0.1:8090/

更新:可能是 ab 中的错误:https ://groups.google.com/forum/#!msg/nodejs/TZU5H7MdoII/yivu0d4LMaAJ

于 2011-11-13T21:02:55.190 回答
12

新版本的 apache 已经解决了这个问题。只需要重建ab。

尝试从http://archive.apache.org/dist/下载最新包

必须修补 apache 并建立一个新的 ab。

$ wget http://archive.apache.org/dist/httpd/httpd-2.3.16-beta.tar.bz2
$ tar jxvf httpd-2.3.16-beta.tar.bz2 
$ cd httpd-2.3.16-beta
$ ./configure

只需要构建位于 support 文件夹中的 ab。

$ cd support
$ make
...
$ ./ab -n 10 -c 1 http://localhost:8090/

如果您的 apache 非常旧,请按照上面的方法对其进行修补和构建。

$ wget https://www.rtfm.ro/download/patches/ab.patch --no-check-certificate
$ patch -p0 < ./ab.patch

完毕。

于 2012-01-11T19:17:07.533 回答
9

添加-r表示不要在套接字接收错误时退出的选项。有时您可能会更改默认的 ulimit 大小值。 ab -r -n 10 -c 1 http://localhost:8090/

于 2016-12-28T05:37:44.890 回答
1

( )中仍然存在的另一个相关错误是它只从. Jürgen Strobel 在评论中提到的可能是这个错误。假设你有这样的事情:abapache-2.4.29getaddrinfo/etc/hosts

127.0.0.1   localhost.localdomain   localhost
::1     localhost.localdomain   localhost

getaddrinfofor返回的第一个结果localhost::1。因此ab尝试通过 IPv6 连接并失败。解决方法是使用127.0.0.1: ab -n 10 127.0.0.1/。或者重新排列线条。虽然,就我而言,它说:

Benchmarking localhost (be patient)...apr_socket_recv: Connection refused (111)
于 2018-01-07T16:14:32.083 回答
0

这个错误有一个补丁,我按照本指南的步骤操作,现在它似乎在 Lion 中对我有用。

于 2012-01-05T00:44:26.413 回答