系統在周一早上發布升級後,半夜兩點 Tomcat 突然掛掉。白天高負載運行正常,卻在深夜低流量時發生 OutOfMemoryError。日誌分析顯示兩類錯誤反覆出現:
推測:頻繁異常導致大量臨時物件產生,GC 來不及回收,最終堆積耗盡記憶體。但白天高負載卻未崩潰,原因仍待深究。
參考 Sun HotSpot GC 文檔,調整啟動參數:
-Xms512m -Xmx1024m -XX:PermSize=128m -XX:MaxPermSize=256m
具體數值視伺服器物理記憶體與應用特性而定。
-Xloggc:gc.log -XX:+PrintGCDetails -XX:+PrintGCTimeStamps白天高負載不崩、夜間低負載崩潰,提示我們:
記憶體調優非一次性工作,需建立「監控→分析→調優→驗證」的持續迴路。