KCloud-Platform-IoT KCloud-Platform-IoT
首页
  • 活动

    • KCloud-Platform-IoT 开源三周年快乐&父亲节快乐
  • 指南

    • 后端项目启动
    • 前端项目启动
    • Docker安装
    • Linux常用命令
    • Docker常用命令
    • JVM性能优化
    • 项目配置
    • COLA代码规范
    • OAuth2.1 授权服务器配置
    • OAuth2.1 资源服务器配置
    • OAuth2.1 认证API配置
    • Nacos配置
    • 网关路由配置
赞助
GitHub (opens new window)
首页
  • 活动

    • KCloud-Platform-IoT 开源三周年快乐&父亲节快乐
  • 指南

    • 后端项目启动
    • 前端项目启动
    • Docker安装
    • Linux常用命令
    • Docker常用命令
    • JVM性能优化
    • 项目配置
    • COLA代码规范
    • OAuth2.1 授权服务器配置
    • OAuth2.1 资源服务器配置
    • OAuth2.1 认证API配置
    • Nacos配置
    • 网关路由配置
赞助
GitHub (opens new window)
  • 活动

    • KCloud-Platform-IoT 开源三周年快乐&父亲节快乐
  • 指南

    • 后端项目启动
    • 前端项目启动
    • Docker安装
    • Linux常用命令
    • Docker常用命令
    • JVM性能优化
      • 项目配置
      • COLA代码规范
      • OAuth2.1 授权服务器配置
      • OAuth2.1 资源服务器配置
      • OAuth2.1 认证API配置
      • Nacos配置
      • 网关路由配置
    • 二开指南
    • 指南
    KCloud-Platform-IoT
    2026-02-09
    目录

    JVM性能优化

    你好呀,我的老朋友!我是老寇,欢迎来到老寇IoT云平台!

    # 优化ARM JVM性能【1G内存】

    # 🚀 安装与卸载JDK25
    # 安装
    sudo pacman -Syy
    sudo pacman -S jdk25-openjdk
    # 卸载
    sudo pacman -R jdk25-openjdk
    
    # 🚀 调整内存

    👉 注意:一旦 JVM 发生 OOM,立刻、直接退出进程(kill -9级别)

    java \
      -Xms256m \
      -Xmx256m \
      -XX:MaxMetaspaceSize=128m \
      -XX:ReservedCodeCacheSize=32m \
      -XX:+UseSerialGC \
      -XX:MaxDirectMemorySize=32m \
      -XX:+ExitOnOutOfMemoryError \
      -jar app.jar
    

    👉 注意:1G内存,默认开启指针压缩

    # 查看参数
    java -XX:+PrintFlagsFinal -version | grep Compressed
    
    # 开启情况
    # bool UseCompressedClassPointers = true
    # bool UseCompressedOops = true
    
    # 🚀 锁死堆内存

    👉 注意:防止JVM运行中偷偷扩容

    👉 注意:避免Full GC频繁抖动

    -Xms256m -Xmx256m
    
    # 🚀 垃圾回收器

    👉 注意:G1/ZGC/Shenandoah都有额外线程和元数据开销

    👉 注意:在<1GB内存下,Serial GC反而最省内存

    👉 注意:JDK25里Serial GC依然是稳定、可用、低占用的

    -XX:+UseSerialGC
    
    # 🚀 锁死元空间

    👉 注意:加载的类一多,Metaspace会吃掉你剩余的内存

    👉 注意:OOM往往不是Heap,而是Metaspace

    -XX:MaxMetaspaceSize=128m
    
    # 🚀 JIT生成的机器码
    -XX:ReservedCodeCacheSize=32m
    

    小内存(≤1GB)推荐值

    场景 Code Cache
    CLI / 工具 16m
    普通服务 32m
    Spring Boot 32m ~ 48m
    超高 QPS 64m(不建议 500MB 环境)
    # 🚀 堆外内存

    👉 注意:堆外内存,GC 只能“间接回收”,回收慢、不可控

    👉 注意:回收依赖:Cleaner、引用失效、Full GC

    -XX:MaxDirectMemorySize=32m
    

    广义堆外内存

    类型 例子
    Direct Memory NIO / Netty
    Code Cache JIT 机器码
    Metaspace 类元数据
    JNI malloc 本地库
    Thread Stack 每个线程的栈
    # 🚀 Tomcat

    👉 注意:线程栈也会吃内存(每线程 ~1MB)

    server:
      tomcat:
        max-threads: 50
        accept-count: 100
    

    我是老寇,我们下次再见啦!

    上次更新: 2/9/2026, 2:54:22 PM
    Docker常用命令
    项目配置

    ← Docker常用命令 项目配置→

    Theme by Vdoing | Copyright © 2022-2026 laokou | Apache 2.0 License
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式