记一次RocketMQ线上broker内存持续升高问题排查

RocketMQ 版本

  • 5.1.0

jdk版本

1.8

JVM启动参数

sh 复制代码
-Xms46g -Xmx46g -XX:MetaspaceSize=1259m -XX:MaxMetaspaceSize=2517m -XX:+UseG1GC -XX:G1HeapRegionSize=16m -XX:G1ReservePercent=25 -XX:InitiatingHeapOccupancyPercent=30 -XX:SoftRefLRUPolicyMSPerMB=0 -verbose:gc -Xloggc:/dev/shm/rmq_srv_gc_%p_%t.log -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=5 -XX:GCLogFileSize=30m -XX:-OmitStackTraceInFastThrow -XX:-UseLargePages

现象

部署RocketMQlinux宿主机内存持续升高。由50%升高到80%

排查

线程资源占用情况

由于宿主机上面只部署了一个broker,所以我们不用具体定位那个进程占用太多内存,直捣黄龙,使用 top -Hp pid查看线程的资源占用情况

可以看到都是broker的线程,我们随便看一个线程的堆栈情况吧 就第一个29465吧

执行jmap -heap 29465

可以看到一个很明显的现象是OldSize实际占用只有5M。说明没占用什么内存

Jvm gc

既然这样看不出我们就简单看看这个broker的GC情况吧

执行jstat -gc -h10 29134 1000 200

复制代码
S0C    S1C    S0U    S1U      EC       EU        OC         OU       MC     MU    CCSC   CCSU   YGC     YGCT    FGC    FGCT     GCT   
 0.0   32768.0  0.0   32768.0 30359552.0 14827520.0 17842176.0 2749227.7  59648.0 56620.6  0.0    0.0    76844  666.504   0      0.000  666.504
 0.0   32768.0  0.0   32768.0 30359552.0 15695872.0 17842176.0 2749227.7  59648.0 56620.6  0.0    0.0    76844  666.504   0      0.000  666.504
 0.0   32768.0  0.0   32768.0 30359552.0 16498688.0 17842176.0 2749227.7  59648.0 56620.6  0.0    0.0    76844  666.504   0      0.000  666.504
 0.0   32768.0  0.0   32768.0 30359552.0 17219584.0 17842176.0 2749227.7  59648.0 56620.6  0.0    0.0    76844  666.504   0      0.000  666.504
 0.0   32768.0  0.0   32768.0 30359552.0 17989632.0 17842176.0 2749227.7  59648.0 56620.6  0.0    0.0    76844  666.504   0      0.000  666.504
 0.0   32768.0  0.0   32768.0 30359552.0 18743296.0 17842176.0 2749227.7  59648.0 56620.6  0.0    0.0    76844  666.504   0      0.000  666.504
 0.0   32768.0  0.0   32768.0 30359552.0 19546112.0 17842176.0 2749227.7  59648.0 56620.6  0.0    0.0    76844  666.504   0      0.000  666.504
 0.0   32768.0  0.0   32768.0 30359552.0 20283392.0 17842176.0 2749227.7  59648.0 56620.6  0.0    0.0    76844  666.504   0      0.000  666.504
 0.0   32768.0  0.0   32768.0 30359552.0 21069824.0 17842176.0 2749227.7  59648.0 56620.6  0.0    0.0    76844  666.504   0      0.000  666.504
 0.0   32768.0  0.0   32768.0 30359552.0 21856256.0 17842176.0 2749227.7  59648.0 56620.6  0.0    0.0    76844  666.504   0      0.000  666.504
 S0C    S1C    S0U    S1U      EC       EU        OC         OU       MC     MU    CCSC   CCSU   YGC     YGCT    FGC    FGCT     GCT   
 0.0   32768.0  0.0   32768.0 30359552.0 22626304.0 17842176.0 2749227.7  59648.0 56620.6  0.0    0.0    76844  666.504   0      0.000  666.504
 0.0   32768.0  0.0   32768.0 30359552.0 23511040.0 17842176.0 2749227.7  59648.0 56620.6  0.0    0.0    76844  666.504   0      0.000  666.504
 0.0   32768.0  0.0   32768.0 30359552.0 24379392.0 17842176.0 2749227.7  59648.0 56620.6  0.0    0.0    76844  666.504   0      0.000  666.504
 0.0   32768.0  0.0   32768.0 30359552.0 25116672.0 17842176.0 2749227.7  59648.0 56620.6  0.0    0.0    76844  666.504   0      0.000  666.504
 0.0   32768.0  0.0   32768.0 30359552.0 25886720.0 17842176.0 2749227.7  59648.0 56620.6  0.0    0.0    76844  666.504   0      0.000  666.504
 0.0   32768.0  0.0   32768.0 30359552.0 26836992.0 17842176.0 2749227.7  59648.0 56620.6  0.0    0.0    76844  666.504   0      0.000  666.504
 0.0   32768.0  0.0   32768.0 30359552.0 27787264.0 17842176.0 2749227.7  59648.0 56620.6  0.0    0.0    76844  666.504   0      0.000  666.504
 0.0   32768.0  0.0   32768.0 30359552.0 28672000.0 17842176.0 2749227.7  59648.0 56620.6  0.0    0.0    76844  666.504   0      0.000  666.504
 0.0   16384.0  0.0   16384.0 30375936.0 901120.0 17842176.0 2760207.3  59648.0 56620.6  0.0    0.0    76845  666.513   0      0.000  666.513
 0.0   16384.0  0.0   16384.0 30375936.0 1785856.0 17842176.0 2760207.3  59648.0 56620.6  0.0    0.0    76845  666.513   0      0.000  666.513
 S0C    S1C    S0U    S1U      EC       EU        OC         OU       MC     MU    CCSC   CCSU   YGC     YGCT    FGC    FGCT     GCT   
 0.0   16384.0  0.0   16384.0 30375936.0 2572288.0 17842176.0 2760207.3  59648.0 56620.6  0.0    0.0    76845  666.513   0      0.000  666.513
 0.0   16384.0  0.0   16384.0 30375936.0 3342336.0 17842176.0 2760207.3  59648.0 56620.6  0.0    0.0    76845  666.513   0      0.000  666.513
 0.0   16384.0  0.0   16384.0 30375936.0 4489216.0 17842176.0 2760207.3  59648.0 56620.6  0.0    0.0    76845  666.513   0      0.000  666.513
 0.0   16384.0  0.0   16384.0 30375936.0 5603328.0 17842176.0 2760207.3  59648.0 56620.6  0.0    0.0    76845  666.513   0      0.000  666.513
 0.0   16384.0  0.0   16384.0 30375936.0 6799360.0 17842176.0 2760207.3  59648.0 56620.6  0.0    0.0    76845  666.513   0      0.000  666.513
 0.0   16384.0  0.0   16384.0 30375936.0 7880704.0 17842176.0 2760207.3  59648.0 56620.6  0.0    0.0    76845  666.513   0      0.000  666.513
 0.0   16384.0  0.0   16384.0 30375936.0 8699904.0 17842176.0 2760207.3  59648.0 56620.6  0.0    0.0    76845  666.513   0      0.000  666.513
 0.0   16384.0  0.0   16384.0 30375936.0 9502720.0 17842176.0 2760207.3  59648.0 56620.6  0.0    0.0    76845  666.513   0      0.000  666.513
 0.0   16384.0  0.0   16384.0 30375936.0 10321920.0 17842176.0 2760207.3  59648.0 56620.6  0.0    0.0    76845  666.513   0      0.000  666.513
 0.0   16384.0  0.0   16384.0 30375936.0 11124736.0 17842176.0 2760207.3  59648.0 56620.6  0.0    0.0    76845  666.513   0      0.000  666.513
 S0C    S1C    S0U    S1U      EC       EU        OC         OU       MC     MU    CCSC   CCSU   YGC     YGCT    FGC    FGCT     GCT   
 0.0   16384.0  0.0   16384.0 30375936.0 11943936.0 17842176.0 2760207.3  59648.0 56620.6  0.0    0.0    76845  666.513   0      0.000  666.513
 0.0   16384.0  0.0   16384.0 30375936.0 12746752.0 17842176.0 2760207.3  59648.0 56620.6  0.0    0.0    76845  666.513   0      0.000  666.513
 0.0   16384.0  0.0   16384.0 30375936.0 13729792.0 17842176.0 2760207.3  59648.0 56620.6  0.0    0.0    76845  666.513   0      0.000  666.513
 0.0   16384.0  0.0   16384.0 30375936.0 14893056.0 17842176.0 2760207.3  59648.0 56620.6  0.0    0.0    76845  666.513   0      0.000  666.513
 0.0   16384.0  0.0   16384.0 30375936.0 16269312.0 17842176.0 2760207.3  59648.0 56620.6  0.0    0.0    76845  666.513   0      0.000  666.513
 0.0   16384.0  0.0   16384.0 30375936.0 17547264.0 17842176.0 2760207.3  59648.0 56620.6  0.0    0.0    76845  666.513   0      0.000  666.513
 0.0   16384.0  0.0   16384.0 30375936.0 18628608.0 17842176.0 2760207.3  59648.0 56620.6  0.0    0.0    76845  666.513   0      0.000  666.513
 0.0   16384.0  0.0   16384.0 30375936.0 19431424.0 17842176.0 2760207.3  59648.0 56620.6  0.0    0.0    76845  666.513   0      0.000  666.513
 0.0   16384.0  0.0   16384.0 30375936.0 20316160.0 17842176.0 2760207.3  59648.0 56620.6  0.0    0.0    76845  666.513   0      0.000  666.513
 0.0   16384.0  0.0   16384.0 30375936.0 21250048.0 17842176.0 2760207.3  59648.0 56620.6  0.0    0.0    76845  666.513   0      0.000  666.513
 S0C    S1C    S0U    S1U      EC       EU        OC         OU       MC     MU    CCSC   CCSU   YGC     YGCT    FGC    FGCT     GCT   
 0.0   16384.0  0.0   16384.0 30375936.0 22118400.0 17842176.0 2760207.3  59648.0 56620.6  0.0    0.0    76845  666.513   0      0.000  666.513
 0.0   16384.0  0.0   16384.0 30375936.0 23003136.0 17842176.0 2760207.3  59648.0 56620.6  0.0    0.0    76845  666.513   0      0.000  666.513
 0.0   16384.0  0.0   16384.0 30375936.0 23756800.0 17842176.0 2760207.3  59648.0 56620.6  0.0    0.0    76845  666.513   0      0.000  666.513
 0.0   16384.0  0.0   16384.0 30375936.0 24461312.0 17842176.0 2760207.3  59648.0 56620.6  0.0    0.0    76845  666.513   0      0.000  666.513
 0.0   16384.0  0.0   16384.0 30375936.0 25411584.0 17842176.0 2760207.3  59648.0 56620.6  0.0    0.0    76845  666.513   0      0.000  666.513
 0.0   16384.0  0.0   16384.0 30375936.0 26279936.0 17842176.0 2760207.3  59648.0 56620.6  0.0    0.0    76845  666.513   0      0.000  666.513
 0.0   16384.0  0.0   16384.0 30375936.0 27082752.0 17842176.0 2760207.3  59648.0 56620.6  0.0    0.0    76845  666.513   0      0.000  666.513
 0.0   16384.0  0.0   16384.0 30375936.0 27934720.0 17842176.0 2760207.3  59648.0 56620.6  0.0    0.0    76845  666.513   0      0.000  666.513
 0.0   16384.0  0.0   16384.0 30375936.0 28835840.0 17842176.0 2760207.3  59648.0 56620.6  0.0    0.0    76845  666.513   0      0.000  666.513
 0.0   16384.0  0.0   16384.0 30375936.0 1064960.0 17842176.0 2761609.3  59648.0 56620.6  0.0    0.0    76846  666.522   0      0.000  666.522
 S0C    S1C    S0U    S1U      EC       EU        OC         OU       MC     MU    CCSC   CCSU   YGC     YGCT    FGC    FGCT     GCT   
 0.0   16384.0  0.0   16384.0 30375936.0 1818624.0 17842176.0 2761609.3  59648.0 56620.6  0.0    0.0    76846  666.522   0      0.000  666.522
 0.0   16384.0  0.0   16384.0 30375936.0 2654208.0 17842176.0 2761609.3  59648.0 56620.6  0.0    0.0    76846  666.522   0      0.000  666.522
 0.0   16384.0  0.0   16384.0 30375936.0 3342336.0 17842176.0 2761609.3  59648.0 56620.6  0.0    0.0    76846  666.522   0      0.000  666.522
 0.0   16384.0  0.0   16384.0 30375936.0 4243456.0 17842176.0 2761609.3  59648.0 56620.6  0.0    0.0    76846  666.522   0      0.000  666.522
 0.0   16384.0  0.0   16384.0 30375936.0 5095424.0 17842176.0 2761609.3  59648.0 56620.6  0.0    0.0    76846  666.522   0      0.000  666.522
 0.0   16384.0  0.0   16384.0 30375936.0 6045696.0 17842176.0 2761609.3  59648.0 56620.6  0.0    0.0    76846  666.522   0      0.000  666.522
 0.0   16384.0  0.0   16384.0 30375936.0 6815744.0 17842176.0 2761609.3  59648.0 56620.6  0.0    0.0    76846  666.522   0      0.000  666.522
 0.0   16384.0  0.0   16384.0 30375936.0 7667712.0 17842176.0 2761609.3  59648.0 56620.6  0.0    0.0    76846  666.522   0      0.000  666.522
 0.0   16384.0  0.0   16384.0 30375936.0 8470528.0 17842176.0 2761609.3  59648.0 56620.6  0.0    0.0    76846  666.522   0      0.000  666.522
 0.0   16384.0  0.0   16384.0 30375936.0 9289728.0 17842176.0 2761609.3  59648.0 56620.6  0.0    0.0    76846  666.522   0      0.000  666.522
 S0C    S1C    S0U    S1U      EC       EU        OC         OU       MC     MU    CCSC   CCSU   YGC     YGCT    FGC    FGCT     GCT   
 0.0   16384.0  0.0   16384.0 30375936.0 10174464.0 17842176.0 2761609.3  59648.0 56620.6  0.0    0.0    76846  666.522   0      0.000  666.522
 0.0   16384.0  0.0   16384.0 30375936.0 11026432.0 17842176.0 2761609.3  59648.0 56620.6  0.0    0.0    76846  666.522   0      0.000  666.522
 0.0   16384.0  0.0   16384.0 30375936.0 11960320.0 17842176.0 2761609.3  59648.0 56620.6  0.0    0.0    76846  666.522   0      0.000  666.522
 0.0   16384.0  0.0   16384.0 30375936.0 12795904.0 17842176.0 2761609.3  59648.0 56620.6  0.0    0.0    76846  666.522   0      0.000  666.522
 0.0   16384.0  0.0   16384.0 30375936.0 13762560.0 17842176.0 2761609.3  59648.0 56620.6  0.0    0.0    76846  666.522   0      0.000  666.522
 0.0   16384.0  0.0   16384.0 30375936.0 14548992.0 17842176.0 2761609.3  59648.0 56620.6  0.0    0.0    76846  666.522   0      0.000  666.522
 0.0   16384.0  0.0   16384.0 30375936.0 15384576.0 17842176.0 2761609.3  59648.0 56620.6  0.0    0.0    76846  666.522   0      0.000  666.522
 0.0   16384.0  0.0   16384.0 30375936.0 16138240.0 17842176.0 2761609.3  59648.0 56620.6  0.0    0.0    76846  666.522   0      0.000  666.522
 0.0   16384.0  0.0   16384.0 30375936.0 17055744.0 17842176.0 2761609.3  59648.0 56620.6  0.0    0.0    76846  666.522   0      0.000  666.522
 0.0   16384.0  0.0   16384.0 30375936.0 18055168.0 17842176.0 2761609.3  59648.0 56620.6  0.0    0.0    76846  666.522   0      0.000  666.522
 S0C    S1C    S0U    S1U      EC       EU        OC         OU       MC     MU    CCSC   CCSU   YGC     YGCT    FGC    FGCT     GCT   
 0.0   16384.0  0.0   16384.0 30375936.0 18857984.0 17842176.0 2761609.3  59648.0 56620.6  0.0    0.0    76846  666.522   0      0.000  666.522
 0.0   16384.0  0.0   16384.0 30375936.0 19644416.0 17842176.0 2761609.3  59648.0 56620.6  0.0    0.0    76846  666.522   0      0.000  666.522
 0.0   16384.0  0.0   16384.0 30375936.0 20496384.0 17842176.0 2761609.3  59648.0 56620.6  0.0    0.0    76846  666.522   0      0.000  666.522
 0.0   16384.0  0.0   16384.0 30375936.0 21430272.0 17842176.0 2761609.3  59648.0 56620.6  0.0    0.0    76846  666.522   0      0.000  666.522
 0.0   16384.0  0.0   16384.0 30375936.0 22364160.0 17842176.0 2761609.3  59648.0 56620.6  0.0    0.0    76846  666.522   0      0.000  666.522
 0.0   16384.0  0.0   16384.0 30375936.0 23166976.0 17842176.0 2761609.3  59648.0 56620.6  0.0    0.0    76846  666.522   0      0.000  666.522
 0.0   16384.0  0.0   16384.0 30375936.0 24084480.0 17842176.0 2761609.3  59648.0 56620.6  0.0    0.0    76846  666.522   0      0.000  666.522
 0.0   16384.0  0.0   16384.0 30375936.0 24969216.0 17842176.0 2761609.3  59648.0 56620.6  0.0    0.0    76846  666.522   0      0.000  666.522
 0.0   16384.0  0.0   16384.0 30375936.0 25952256.0 17842176.0 2761609.3  59648.0 56620.6  0.0    0.0    76846  666.522   0      0.000  666.522
 0.0   16384.0  0.0   16384.0 30375936.0 26836992.0 17842176.0 2761609.3  59648.0 56620.6  0.0    0.0    76846  666.522   0      0.000  666.522
 S0C    S1C    S0U    S1U      EC       EU        OC         OU       MC     MU    CCSC   CCSU   YGC     YGCT    FGC    FGCT     GCT   
 0.0   16384.0  0.0   16384.0 30375936.0 27770880.0 17842176.0 2761609.3  59648.0 56620.6  0.0    0.0    76846  666.522   0      0.000  666.522
 0.0   16384.0  0.0   16384.0 30375936.0 28573696.0 17842176.0 2761609.3  59648.0 56620.6  0.0    0.0    76846  666.522   0      0.000  666.522
 0.0   16384.0  0.0   16384.0 30375936.0 589824.0 17842176.0 2760662.3  59648.0 56620.6  0.0    0.0    76847  666.530   0      0.000  666.530
 0.0   16384.0  0.0   16384.0 30375936.0 1425408.0 17842176.0 2760662.3  59648.0 56620.6  0.0    0.0    76847  666.530   0      0.000  666.530
 0.0   16384.0  0.0   16384.0 30375936.0 2326528.0 17842176.0 2760662.3  59648.0 56620.6  0.0    0.0    76847  666.530   0      0.000  666.530
 0.0   16384.0  0.0   16384.0 30375936.0 3112960.0 17842176.0 2760662.3  59648.0 56620.6  0.0    0.0    76847  666.530   0      0.000  666.530
 0.0   16384.0  0.0   16384.0 30375936.0 3981312.0 17842176.0 2760662.3  59648.0 56620.6  0.0    0.0    76847  666.530   0      0.000  666.530
 0.0   16384.0  0.0   16384.0 30375936.0 4915200.0 17842176.0 2760662.3  59648.0 56620.6  0.0    0.0    76847  666.530   0      0.000  666.530
 0.0   16384.0  0.0   16384.0 30375936.0 5849088.0 17842176.0 2760662.3  59648.0 56620.6  0.0    0.0    76847  666.530   0      0.000  666.530
 0.0   16384.0  0.0   16384.0 30375936.0 6733824.0 17842176.0 2760662.3  59648.0 56620.6  0.0    0.0    76847  666.530   0      0.000  666.530

初步计算一下OCOU

  • OC:17842176 / 1024.0 / 1024.0 = 17G
  • OU: select 2761609.3 / 1024.0 / 1024.0 = 2.6G

说明老年代的可用内存是17G,实际仅仅使用了2.6G左右。

  • EC: 30375936.0 / 1024.0 / 1024.0 = 28.96875G
  • EU: 27770880.0 / 1024.0 / 1024.0 = 26.484375G

实际G1中的新生代和老年代都是逻辑概念,动态变化的,每个Region即可以是新生代,也可以是老年代。

实际的堆内内存是 29 + 17 = 46G,和我们设置的堆内内存对的上,老年代仅仅用了2.6G,剩余14G左右可用。

堆外内存我们设置的是5G,算下来我们实际使用的内存大小为: 5G + 29G +3G = 37G. 实际使用内存为57% 剩余内存为 64 - 37G = 27G

为什么宿主机的内存占用居高不下

在JVM启动时,通过-Xms参数设置的堆内存是直接分配给JVM的,这部分内存即使没有使用,也不会被JVM释放给操作系统。这是为了避免在应用运行过程中频繁的进行内存分配和回收,从而影响性能。

为什么是慢慢增长

进程在申请内存的时候,不是直接分配物理内存,分配一块虚拟空间,等到堆真正使用这块虚拟空间才会发生缺页去分配物理内存

何时归还物理内存

不同垃圾收集器的物理内存归还机制不一样。目前我们使用的是JKD8 G1 JKD8 G1在经历一次Full GC后就会归还内存给操作系统 cms要经过多次full gc才可能把不用的内存归还给操作系统

我们看到的GC log可以看到没有一次full GC,所以暂时不会归还内存给操作系统

如何更准确监控内存使用

后续可以直接监控JVM的堆内内存使用,还有一些GC监控。单纯监控宿主机不一定能看到java应用实际的内存使用情况

相关推荐
花落人散处1 分钟前
SpringAI——整合MCP案例
java·后端
前端Hardy2 分钟前
Python 打造 Excel 到 JSON 转换工具:从开发到打包全攻略
前端·后端·python
得物技术2 小时前
Java volatile 关键字到底是什么|得物技术
java·后端
青梅主码2 小时前
【手把手攻略】国家育儿补贴正式开领!一键算清你能拿多少钱?附补贴领取计算器
后端
阿宙ppppp2 小时前
yoloV5的环境安装
后端·图像识别
杨DaB3 小时前
【SpringMVC】MVC中Controller的配置 、RestFul的使用、页面重定向和转发
java·笔记·后端·学习·spring·mvc·restful
创码小奇客3 小时前
保姆级 Talos 超参数优化实战指南:从入门到封神
java·后端·架构
程序媛李李李李李蕾3 小时前
你不能直接用现成的吗?整个前端做笔记管理工具真是折腾人
javascript·vue.js·后端
易元3 小时前
设计模式-访问者模式
前端·后端·设计模式
liangdabiao3 小时前
一篇文章尽快介绍入门级智能体Agent是什么回事, Starter AI Agents 项目 来自 awesome-llm-apps
前端·后端