1 准备工作
环境: ubuntu
简述
最近在做一些测试工作,对于测试我是同时使用 wrk
和 ab
的,但是 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 小结
安装完成之后,使用起来还是蛮爽的,对于测试,还是多使用几组工具一起测试。