压测的时候用到 apache ab,但是 ab 本身支持的并发最大 1000,过了报错,修改源码 support/ab.c 把这行注释掉
apr_err("apr_socket_recv", status);
但是编译的时候各种依赖,手工解决好烦,首先出来 undefined reference to apr 系列的函数,查到这里,http://hi.baidu.com/yang171892…,说了
collect2: ld returned 1 exit status
make[1]: *** [httpd] Error 1
make[1]: Leaving directory `/tmp/httpd-2.2.22′
make: *** [all-recursive] Error 1
的错误,
解决方案:
搜了下解决方案说:编译apache之前应该先安装apr和apr-util,rpm -qa看了一下都是有的,但是还是报错。
原来编译的时候
./configure –prefix=/usr/local/httpd –enable-mods-shared=most –with-included-apr
但是使用 with-included-apr 又报错,configure: error: Bundled APR requested but not found at ./srclib/. Download and unpack the corresponding apr and apr-util packages to ./srclib/.,查到这里,http://coolwa.blog.51cto.com/1…
执行配置安装httpd时出错
configure: error: Bundled APR requested but not found at ./srclib/. Download and unpack the corresponding apr and apr-util packages to ./srclib/.
需要下载apr和apr-utils 并解压到./srclib/, 再进行编译#wget http://apache.etoak.com//apr/a…
#wget http://apache.etoak.com//apr/a…#tar zxvf apr-1.4.6.tar.gz
#tar zxvf apr-utli-1.4.1.tar.gz
#cp -rf apr-1.4.6 httpd-2.4.1/srclib/apr
#cp -rf apr-util-1.4.6 httpd-2.4.1/srclib/apr-util
终于编译起来,其他一些琐碎的依赖,不一一细表。
坑爹啊,压测的时候发现并发过 1000 就会出问题,一直想想不通,代码反复查,后来才发现,是跑服务进程的 ulimit -n 没改,默认估计是 1024,结果新的 fd 一直进不来,真是坑爹啊