服務宕機及優化
阿新 • • 發佈:2020-10-18
一、現象:
16點30分左右,某服務飄紅,重啟之後,記憶體很快又爆掉,擴充例項到8臺之後仍然不行,最後臨時調大最大堆和最小堆到3g,暫時抗住。
二、原因分析:
歷史遺留問題,1年前某開發寫程式碼時將,所有資料拼成一條sql去儲存,隨著資料量變大14w資料用一條sql懟到資料庫導致服務宕機。
三、Kibana日誌:
四、線上伺服器配置:-xms2g -xmx2g
年輕代1G 老年代1G
五、fullgc分析:
六、問題程式碼:
七、解決方案:
1、業務上:
1、任務規則 乘 任務商品 總條數需要小於10w條,超過之後分批匯入
2、防止同一檔案重複提交
3、防止同一檔案匯入成功之後,多次重複匯入
2、技術上:
1、超過10w條,提示使用者,分批匯入
3、大陣列拆分成多個小陣列(500個一組),分批執行
七、後續如何規避:
排查專案裡涉及到sql批量操作的地方,進行調整,避免大sql