首页 > LAMP应用服务器 > 使用apache benchmark(ab) 测试报错: apr_socket_recv: Connection timed out (110)

使用apache benchmark(ab) 测试报错: apr_socket_recv: Connection timed out (110)

2016年6月12日

使用apache benchmark(ab) 测试报错: apr_socket_recv: Connection timed out (110)
http://blog.csdn.net/garn_hsia/article/details/12997477
网上流传方法一:
使用ab或者webbench做压力测试,如果并发数开到1000的时候,无法完成测试。到晚上查看资料发现是linux网络参数设置。
[[email protected] etc]# 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
[[email protected] etc]# sysctl -p /etc/sysctl.conf
如果报错:error: “net.nf_conntrack_max” is an unknown key 则需要使用modprobe载入ip_conntrack模块,lsmod查看模块已载入。
[[email protected] etc]# 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;    //添加
}
}

本文的评论功能被关闭了.