1. 程式人生 > >apr_socket_recv: Connection reset by peer 錯誤

apr_socket_recv: Connection reset by peer 錯誤

用ab做效能測試.

併發請求量稍微高一點(200,300以上)就會報apr_socket_recv: Connection reset by peer 的錯.

剛開始以為apache伺服器設定有問題. 網上一頓找, 結果你也懂的. 按照咱國家特殊國情慣例, 都是同一篇文章考來考去.

最後還是找到一個靠譜點的解決方法.

如果有同上的問題, 不要猶豫, ab必須要重新編譯安裝了. 至於用yum安裝httpd的. 也不例外, 也需要新編譯安裝ab和apr了.

如果你是通過編譯安裝的修改ab.c檔案後重新編譯安裝也有同樣問題. 我想應該是apr的問題.

具體錯誤在哪裡也沒研究. 下面方法能解決這個問題.

1. 下載所需要的原始碼

apr和apr-utils

http://apr.apache.org/download.cgi 

ab原始碼可以到這裡下載

2. 編譯安裝

$ mkdir ab
$ mkdir apr
$ mkdir apr-utils

$ cd ab
$ wget https://apachebench-standalone.googlecode.com/files/ab-standalone-0.1.tar.bz2
$ tar -xvf ab-standalone-0.1.tar.bz2
$ cd ../apr
$ wget http://apache.etoak.com//apr/apr-1.4.8.tar.gz
$ tar -xvf apr-1.4.8.tar.gz
$ cd ../apr-utils
$ wget http://apache.etoak.com//apr/apr-util-1.5.2.tar.gz
$ tar -xvf apr-util-1.5.2.tar.gz


先編譯apr

$ cd apr/apr-1.4.8
$ ./configure
$ make
$ make install


編譯apr-utils

$ cd apr-utils/apr-util-1.5.2
$ ./configure --with-apr=/usr/local/apr
$ make
$ make install


編譯ab

先修改ab.c檔案

$ cd ab/ab-standalone
$ vim ab.c


到 :1380 行

修改成如下.

        /* catch legitimate fatal apr_socket_recv errors */
        else if (status != APR_SUCCESS) {
            err_recv++;
            if (recverrok) {
                bad++;
                close_connection(c);
                if (verbosity >= 1) {
                    char buf[120];
                    fprintf(stderr,"%s: %s (%d)\n", "apr_socket_recv", apr_strerror(status, buf, sizeof buf), status);
                }
                return;
            } else {
                //apr_err("apr_socket_recv", status);   // 從這開始
                bad++;
                close_connection(c);
                return;      // 到這裡
            }
        }
改完後
$ make apr-skeleton
$ make ab

就可以了.

把之前的ab替換掉一個軟連線或者直接在編譯後的目錄上用都可以.

參考

相關推薦

apr_socket_recv: Connection reset by peer 錯誤

用ab做效能測試. 併發請求量稍微高一點(200,300以上)就會報apr_socket_recv: Connection reset by peer 的錯. 剛開始以為apache伺服器設定有問題. 網上一頓找, 結果你也懂的. 按照咱國家特殊國情慣例, 都是同一篇文章考

vmware虛擬機器下CentOS7.2出現ssh連線被connection reset by peer錯誤

用vmware 11 安裝了centos7.2後,用ssh工具遠端連接出現connection reset by peer錯誤,檢查防火牆和/etc/hosts.deny等都沒有發現問題,於是停止sshd服務,啟用debug模式跟蹤: /usr/sbin/sshd -d 

NGINX 反向代理錯誤:104: Connection reset by peer

轉: https://my.oschina.net/u/1024107/blog/1838968 此問題在於 nginx的buffer太小,timeout太小。 http模組新增以下引數配置: client_body_buffer_size 20m; fastcgi_buf

現象:頁面開啟一片空白,相應慢 日誌列印錯誤:java.io.IOException: Connection reset by peer

解決方法:重啟tomcat。Connection reset 會在客戶端不知道 channel 被關閉的情況下, 觸發了 eventloop 的 unsafe.read() 操作丟擲問題出現原因:(轉載)這個異常是由於以下幾個原因造成。1、客戶端再發起請求後沒有等伺服器端相應

Connection reset by peer: socket write error錯誤分析及解決

Connection reset by peer: socket write error錯誤分析:常出現的Connection reset by peer: 原因可能是多方面的,不過更常見的原因是:  ①:伺服器的併發連線數超過了其承載量,伺服器會將其中一些連線Down掉; 

rsync錯誤處理-Connection reset by peer(104)

================================================================================ rsync: read error: Connection reset by peer (104)rsync e

LR回放https協議腳本失敗:[GENERAL_MSG_CAT_SSL_ERROR]connect to host "XXX" failed:[10054] Connection reset by peer [MsgId:MERR-27780]

網絡連接 advance sgid 服務器 vuser con run load sgi 最近做一個負載均衡項目的性能測試,使用LR錄制腳本協議為https協議,回放腳本時出現報錯: [GENERAL_MSG_CAT_SSL_ERROR]connect to host "

CentOS7使用ssh不能登錄,報錯:Read from socket failed: Connection reset by peer

read from socket failed: connection reset by peer使用xshell登錄CentOS7,不能登錄,使用另外一臺Linux主機,telent 22端口是同的,ssh連接報以下錯誤:Read from socket failed: Connection reset b

ECS雲主機SSH連接提示“Connection reset by peer”的解決辦法和解決思路

阿裏雲 運維思想 工單支持 三周前剛從上家公司換到新的公司,這家公司與上家公司相比對阿裏雲的雲計算環境更加的依賴,使用的ECS實例和其他服務如SLB、RDS、OSS等更多了一個數量級。這篇文章的背景就是為了解決阿裏雲ECS雲主機SSH連接的一個問題,從故障發現到故障排除到最後反思的一個詳細

CentOS7 yum的一次報錯" 14: curl#56 - "Recv failure: Connection reset by peer" "

yum1、故障現象[[email protected]/* */ src]# yum update Loaded plugins: fastestmirror, langpacks Could not retrieve mirrorlist 7&arch=x86_64&repo

connection reset by peer, socket write error問題分析

getc 主動 連接 返回 知識 可能 -- 成功 connect 上次寫《connection reset by peer, socket write error問題排查》已經過去大半年,當時把問題“敷衍”過去了。 但是此後每隔一段時間就會又想起來,baidu、googl

connection reset by peer問題總結及解決方案

net 方維 catch 火墻 tst buffer 整理 pos 在服務器 找遍了 中英文網站,翻遍了能找的角落,發現了出現故障的原因和原理,及改如何處理,這裏記錄下,希望能幫助到有需要的小夥伴,少走點彎路, 以上就整理內容: connection res

Connection reset by peer的常見原因

路由 可能 tcp 個數 exc 時間 ... 連接 tst 1,如果一端的Socket被關閉(或主動關閉,或因為異常退出而 引起的關閉),另一端仍發送數據,發送的第一個數據包引發該異常(Connect reset by peer)。 Socket默認連接60秒,60秒之內

jumpserver開源跳板機用戶鏈接的時候終端顯示connection reset by peer

過去 客戶 跳板 鏈接 賬號 ica -- 映射 con 我們使用賬號鏈接的時候,在終端頁面顯示“connection reset by peer”,然後我們去看日誌信息,會顯示“FAILED: Authentication failed.FAILED: Authentic

Connection reset by peer原理解析

“Connection reset by peer”代表什麼?“Connection reset by peer”表示當前伺服器接受到了通訊對端傳送的TCP RST訊號,即通訊對端已經關閉了連線,通過RST訊號希望接收方關閉連線。 The remote server has sent you a RST p

ssh連線遠端伺服器:ssh_exchange_identification: read: Connection reset by peer

查閱資料這是伺服器超過使用者最大連線數,雲伺服器後臺遠端連線修改一下自動連線數: ----> -----> 輸入密碼遠端連線之後: 進入usr目錄,然後輸入:  vi /etc/ssh/sshd_config  按i編輯,修改這個引

Filebeat - Logstash connection reset by peer

2018-09-25T14:21:41.821+0800 ERROR logstash/async.go:252 Failed to publish events caused by: write tcp 127.0.0.1:45718->127.0.0.1:5044: write:

suse ssh連線拒絕,報錯 ssh_exchange_identification: read: Connection reset by peer

   操作報錯現象,ssh遠端伺服器,提示ssh_exchange_identification: read: Connection reset by peer  ,但是能夠ping的通  執行ssh -v [email protected]&n

下載標準庫libcxx出現svn: E000104: Error running context: Connection reset by peer的解決方案

使用svn co http://llvm.org/svn/llvm-project/libcxx/tags/RELEASE_500/final libcxx下載標準庫libcxx出現svn: E000104: Error running context: Connection reset b

docker exec failed!!error from pipe caused \"read parent: connection reset by peer\"問題

一、復現報錯: docker exec -it  wsqtest  bash rpc error: code = 2 desc = oci runtime error: exec failed: container_linux.go:247: starting container p