apr_socket_recv: Connection reset by peer 错误

5 篇文章 0 订阅
2 篇文章 0 订阅

用ab做性能测试.

并发请求量稍微高一点(200,300以上)就会报apr_socket_recv: Connection reset by peer 的错.

刚开始以为apache服务器设置有问题. 网上一顿找, 结果你也懂的. 按照咱国家特殊国情惯例, 都是同一篇文章考来考去.

最后还是找到一个靠谱点的解决方法.


如果有同上的问题, 不要犹豫, ab必须要重新编译安装了. 至于用yum安装httpd的. 也不例外, 也需要新编译安装ab和apr了.

如果你是通过编译安装的修改ab.c文件后重新编译安装也有同样问题. 我想应该是apr的问题.

具体错误在哪里也没研究. 下面方法能解决这个问题.


1. 下载所需要的源码

apr和apr-utils

http://apr.apache.org/download.cgi 

ab源码可以到这里下载

https://code.google.com/p/apachebench-standalone/downloads/list


2. 编译安装

$ mkdir ab
$ mkdir apr
$ mkdir apr-utils

$ cd ab
$ wget https://apachebench-standalone.googlecode.com/files/ab-standalone-0.1.tar.bz2
$ tar -xvf ab-standalone-0.1.tar.bz2
$ cd ../apr
$ wget http://apache.etoak.com//apr/apr-1.4.8.tar.gz
$ tar -xvf apr-1.4.8.tar.gz
$ cd ../apr-utils
$ wget http://apache.etoak.com//apr/apr-util-1.5.2.tar.gz
$ tar -xvf apr-util-1.5.2.tar.gz


先编译apr

$ cd apr/apr-1.4.8
$ ./configure
$ make
$ make install


编译apr-utils

$ cd apr-utils/apr-util-1.5.2
$ ./configure --with-apr=/usr/local/apr
$ make
$ make install


编译ab

先修改ab.c文件

$ cd ab/ab-standalone
$ vim ab.c


到 :1380 行

修改成如下.

        /* catch legitimate fatal apr_socket_recv errors */
        else if (status != APR_SUCCESS) {
            err_recv++;
            if (recverrok) {
                bad++;
                close_connection(c);
                if (verbosity >= 1) {
                    char buf[120];
                    fprintf(stderr,"%s: %s (%d)\n", "apr_socket_recv", apr_strerror(status, buf, sizeof buf), status);
                }
                return;
            } else {
                //apr_err("apr_socket_recv", status);   // 从这开始
                bad++;
                close_connection(c);
                return;      // 到这里
            }
        }


改完后
$ make apr-skeleton
$ make ab

就可以了.

把之前的ab替换掉一个软连接或者直接在编译后的目录上用都可以.

参考

https://code.google.com/p/apachebench-standalone/wiki/HowToBuild

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值