良玉的博客 点点滴滴,积水成河_良玉的博客_页游、手游linux运维工程师之路

ab测试报错apr_socket_recv: Connection timed out (110)

几天压测web,ab报错了:

# ab -n7000 -c7000 http://blog.uouo123.com/index.php    

...................

apr_socket_recv: Connection timed out (110)

Total of 6311 requests completed


网上流传方法一:

使用ab或者webbench做压力测试,如果并发数开到1000的时候,无法完成测试。到晚上查看资料发现是linux网络参数设置。

# vi /etc/sysctl.conf
kernel2.6之前的添加项:
net.ipv4.netfilter.ip_conntrack_max = 655360
net.ipv4.netfilter.ip_conntrack_tcp_timeout_established = 180 

kernel2.6之后的添加项:
net.nf_conntrack_max = 655360  # net.nf_conntrack_max = 655360 也可以
net.netfilter.nf_conntrack_tcp_timeout_established = 1200

sysctl -p /etc/sysctl.conf

如果报错:error: "net.nf_conntrack_max" is an unknown key 则需要使用modprobe载入ip_conntrack模块,lsmod查看模块已载入。
# modprobe  ip_conntrack


网上流传方法二:

按如下修改 Apache 源码目录下 support/ab.c 文件,重新编译安装。


         elseif(status != APR_SUCCESS) {
             err_recv++;
             if(recverrok) {
                 bad++;
                 close_connection(c);
                 if(verbosity >= 1) {
                     charbuf[120];
                     fprintf(stderr,"%s: %s (%d)\n", "apr_socket_recv", apr_strerror(status, buf, sizeofbuf), status);
                }
                 return;
            } else{
                 bad++;                                 //添加
                 close_connection(c);                   //添加
                 //apr_err("apr_socket_recv", status);  //注释
                return;    //添加
             }
         }


还有种情况是,连不上网站,telnet端口不通。。。。悲剧

留言列表
发表评论
来宾的头像