1 准备工作

环境: ubuntu

简述
最近在做一些测试工作,对于测试我是同时使用 wrkab 的,但是 ab 在测试的过程中,如果并发量稍微大些,就会报错,估计大家都很熟悉。

apr_socket_recv: Connection reset by peer (104)

当然肯定还会伴随其他问题,找谷姐发现要修改源码,重新编译安装,这里也只是记录下简单的安装流程。

使用过程中其他问题:

socket: Too many open files (24) 修改连接数即可

2 安装 ab

如果你的机器上没有安装过 ab,请先安装 ab,执行下面命令

apt-get install apache2-utils

如果不预先安装,直接进行下一步,会出现下面错误,等着自我懵逼吧

error while loading shared libraries: libapr-1.so.0: cannot open shared object file: Error 40

3 修改源码重新编译安装

下载源码以及依赖包

3.1 编译安装 apr-1.5.2

tar -jxvf apr-1.5.2.tar.bz2
cd apr-1.5.2
./configure
make && make install
ln -s /usr/local/apr/lib/pkgconfig/apr-1.pc /usr/local/lib/pkgconfig/apr-1.pc 

如果出现 pkgconfig: not found,则执行下面命令

apt-get install pkg-config

3.2 编译安装 apr-util-1.5.4

tar -jxvf apr-util-1.5.4.tar.bz2
cd apr-util-1.5.4
./configure --with-apr=/usr/local/apr
make && make install

3.2 编译安装 ab

修改 ab.c

tar -jxvf ab-standalone-0.1.tar.bz2
cd ab-standalone

然后 vi ab.c 跳到 1392 行,修改代码

} else {
    //apr_err("apr_socket_recv", status); 注释掉这行
    //添加下面代码
    bad++;
    close_connection(c);
    return;
}

然后执行下面命令

make apr-skeleton && make ab
cp ab apr-skeleton /usr/local/bin/

4 小结

安装完成之后,使用起来还是蛮爽的,对于测试,还是多使用几组工具一起测试。


青阳半雪
1.6k 声望24 粉丝

现实与完美之间