專案上線了,跑了一段時間,就出現卡死的情況。
一看伺服器的cpu或者記憶體並沒有多高。
後來重啟了一下nginx和php-fpm後就正常了。
通過檢視nginx錯誤日誌104: connection reset by peer
,發現需要修改配置。
nginx的buffer太小,timeout太小。
client_header_buffer_size 5m;
large_client_header_buffers 4 5m;
client_body_buffer_size 20m;
fastcgi_buffer_size 128k;
fastcgi_buffers 4 128k;
fastcgi_busy_buffers_size 256k;
gzip_buffers 16 8k;
proxy_buffer_size 64k;
proxy_buffers 4 128k;
proxy_busy_buffers_size 256k;
keepalive_timeout 240;
fastcgi_connect_timeout 600;
fastcgi_send_timeout 600;
fastcgi_read_timeout 600;
proxy_connect_timeout 600s;
proxy_send_timeout 1200;
proxy_read_timeout 1200;
修改後,重啟nginx。
風平浪靜的時間久了。
可是,過了一段時間,又出現問題了。
日誌繼續監控者。
後來繼續排查,發現介面中使用了curl方法。
優化前 ,
// 通過post方式傳送json資料
static public function dopostjson($url = '', $param = ,$contenttype = 'json')
// 返回的資料是否自動顯示
curl_setopt($ch, curlopt_returntransfer, true);
// 執行並接收響應結果
$output = curl_exec($ch);
// 關閉curl
curl_close($ch);
return $output !== false ? $output : false;
}
優化後,
// 通過post方式傳送json資料
static public function dopostjson($url = '', $param = ,$contenttype = 'json',$timeout=3)
// 返回的資料是否自動顯示
curl_setopt($ch, curlopt_returntransfer, true);
// 執行並接收響應結果
$output = curl_exec($ch);
// 關閉curl
curl_close($ch);
return $output !== false ? $output : false;
}
之前沒有timeout設定,導致獲取別人資訊的時候會一直無法結束。多個這樣的curl操作之後,直接導致nginx的buffer被用完了,直接死掉。
至此,終於風平浪靜了。
發現問題,解決問題。需要經驗。
平時寫**規範,少留坑。話說,不經歷大風大浪也不知道該如何優化。
首頁訪問時間長,占用nginx服務,可以放入redis快取當中。
nginx錯誤日誌,可以排查問題所在。
mysql慢查詢日誌,可以優化查詢sql,新增索引。
查詢慢,會使用者體驗不好,加大資源消耗。(cpu,記憶體)
如果使用者量大,日誌檔案會快速堆積,導致伺服器空間不足。
需要定期清理,寫shell指令碼。
這次經理,驚心動魄,學會了發現問題,解決問題。
感受了,**,伺服器環境,資料庫優化,系統架構等方面的知識。
感受到了日誌對於排查錯誤的重要性。
日誌,讓問題更加的直觀。
日誌,可以更好的監控使用者量。
量大了,問題都出現了。
百萬pv,需要乙個優秀的系統架構,強大的伺服器,健壯的**,優質的演算法。
百萬pv,有點意思。
CISSP認證考試驚心動魄的回憶
我參加了今年3月26日的上海考試。這個日子對我而言比較特殊,因為這一天正是我的生日,更重要的是我差點在cissp的大門前嘎然止步!3月25日晚上,我還在不停地翻all in one cissp prep guide和學習筆記,特別是重點看了secuirty mode。對security mode部分...
驚心動魄的小學期,不平凡的85天!
驚心動魄這個詞用在學習知識上可能有點不合適,但是我還是要用一下,因為我們確實過了乙個很不平凡的暑假。雖然小學期大家都經歷過,但是每個經歷過的人畢竟是經歷都是不一樣的,今天來介紹一下我所經歷過的至今為止最讓我自己難忘的這個暑假吧。我們小學期的名字叫做軟體基礎實習,說起這門課,我們的前面11屆 好像是1...
驚心動魄的SAP S4客戶額度調整運動
今天一大早,收到商務部發來的訊息,說某乙個客戶的額度超額了,但實際上並未超額。從sap系統中反饋的額度來看,顯示超了2萬多。後來經過在bp畫面檢查信用段發現,這個客戶額度占用裡面,某乙個未清訂單已經部分交貨並開票了,這點在未清發票裡面也有體現,但未清訂單裡這個訂單額度仍舊是總額,如此額度就被重複占用...