使用ab或者webbench作壓力測試,若是併發數開到1000的時候,沒法完成測試。到晚上查看資料發現是linux網絡參數設置。
[longhao@longhao 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
[longhao@longhao etc]# sysctl -p /etc/sysctl.conf
若是報錯:error: 「net.nf_conntrack_max」 is an unknown key 則須要使用modprobe載入ip_conntrack模塊,lsmod查看模塊已載入。
[longhao@longhao etc]# modprobe ip_conntrackcss
按以下修改 Apache 源碼目錄下 support/ab.c 文件(1369行左右),從新編譯安裝。linux
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; //添加
}
}