Debian系统Java内存管理实用技巧
一 基础配置与启动参数
sudo apt update && sudo apt install openjdk-8-jdk 与 java -version。-Xms4g -Xmx4g。-Xmn(如 2g)、线程栈 -Xss(如 128k 或 256k)。-XX:MetaspaceSize=512m -XX:MaxMetaspaceSize=1g,避免频繁元空间扩容。java -Xms4g -Xmx4g -Xmn2g -Xss256k -XX:MetaspaceSize=512m -XX:MaxMetaspaceSize=1g -jar app.jar。二 垃圾回收器选择与关键参数
**-XX:+UseG1GC**-XX:MaxGCPauseMillis=200(按业务可接受值设定)-XX:InitiatingHeapOccupancyPercent=45(堆占用达到阈值即启动并发周期)-XX:+UseParallelGC -XX:ParallelGCThreads=20 -XX:MaxGCPauseMillis=100-XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:/var/log/myapp/gc.log。三 容器与系统层面的设置
free -m、top 观察系统内存与 Java 进程占用,确认是否存在系统层瓶颈。fallocate -l 4G /swapfile && mkswap /swapfile && chmod 600 /swapfile && swapon /swapfile,并在 /etc/fstab 持久化)。注意:Swap 会降低访问延迟,仅作兜底。vm.swappiness,并为高并发应用提升文件描述符限制(如 /etc/security/limits.conf)。四 监控诊断与常见场景
JAVA_OPTS="-Xmx2g"。[Service] 中注入 Environment="JAVA_OPTS=...",便于统一与持久化管理。