1. 程式人生 > 實用技巧 >服務宕機及優化

服務宕機及優化

一、現象:

16點30分左右某服務飄紅,重啟之後,記憶體很快又爆掉,擴充例項到8臺之後仍然不行,最後臨時調大最大堆和最小堆到3g,暫時抗住。

二、原因分析:

歷史遺留問題,1年前某開發寫程式碼時將,所有資料拼成一條sql去儲存,隨著資料量變大14w資料用一條sql懟到資料庫導致服務宕機。

三、Kibana日誌:

四、線上伺服器配置:-xms2g -xmx2g

年輕代1G 老年代1G

五、fullgc分析:

六、問題程式碼:

七、解決方案:

1、業務上:

1、任務規則 乘 任務商品 總條數需要小於10w條,超過之後分批匯入

2、防止同一檔案重複提交

3、防止同一檔案匯入成功之後,多次重複匯入

2、技術上:

1、超過10w條,提示使用者,分批匯入

2、程式裡list設定初始值,避免陣列不斷擴容

3、大陣列拆分成多個小陣列(500個一組),分批執行

七、後續如何規避:

排查專案裡涉及到sql批量操作的地方,進行調整,避免大sql