使用apache benchmark(ab) 測試報錯: apr_socket_recv: Connection timed out (110)


網上流傳方法一:

使用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_conntrack

網上流傳方法二:

按如下修改 Apache 源碼目錄下 support/ab.c 文件(1369行左右),重新編譯安裝。

         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;    //添加
             }
         }


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM