問題:fwrite(): send of 8192 bytes failed with errno=104 Connection reset by peer
問題描述
通過mysql + sphinx做的一個檢索功能,之前一直沒什么問題,最近檢索時有部分檢索失敗,查看日志后報錯為 fwrite(): send of 8192 bytes failed with errno=104 Connection reset by peer。
問題分析
查看代碼部分,fwrite() 打開的資源為fsockopen(),通過fsockopen連接sphinx,將數據寫入到sphinx服務端。
最終發現問題出在sphinx服務端,由於檢索的數據太大,在請求sphinx服務端時,發送的包數據超過了sphinx可接受的最大值,導致以上問題。
解決方法
修改sphinx.conf中max_packet_size(最大允許的網絡包大小)的設置值以解決問題。
