在Debian系統上設置Java內存需結合應用需求和服務器配置,以下為通用建議:
- 堆內存(核心參數)
- 初始堆(-Xms):建議設置為與最大堆(-Xmx)相同的值,避免運行時動態調整內存帶來的性能損耗。例如:
-Xms1024m
(1GB)。
- 最大堆(-Xmx):根據應用內存需求設置,通常為物理內存的50%-70%,避免占用過多系統資源。例如:
-Xmx2048m
(2GB)。
- 非堆內存(元空間等)
- 初始元空間(-XX:MetaspaceSize):建議設置為256MB,如
-XX:MetaspaceSize=256m
。
- 最大元空間(-XX:MaxMetaspaceSize):可設置為512MB或更大,如
-XX:MaxMetaspaceSize=512m
。
- 其他參數(可選)
- 新生代(-Xmn):若需優化垃圾回收,可設置新生代大小,通常為堆內存的1/3-1/2,如
-Xmn512m
。
- 垃圾回收器:推薦使用G1 GC(
-XX:+UseG1GC
),適合大內存場景。
示例配置(針對中小型應用):
java -Xms1024m -Xmx1024m -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=512m -jar myapp.jar
注意事項:
- 需通過
free -m
命令確認服務器物理內存,避免設置超過可用內存。
- 生產環境建議通過監控工具(如VisualVM)觀察內存使用情況,動態調整參數。
- 若應用為高并發或大數據場景,可適當增加堆內存并選擇G1/ZGC等高效垃圾回收器。