fe节点内存长期使用率在90%左右

【详述】 fe节点16g内存,堆内存给的是12g 实际使用内存是5.5g 但是fe进程的使用总内存占比88% 差不多14g,我想问下这个进程的14g内存是怎么分配的
【背景】无
【业务影响】无
【StarRocks版本】2.5.8
【集群规模】1fe+5be(fe 4c16g,5be 32c 128g)
【联系方式】为1130420118@qq.com
【附件】


jmap信息
0 ✓ 14:28:38 root@prod-starrocks-fe-1:~ # jmap -heap 3173
Attaching to process ID 3173, please wait…
Debugger attached successfully.
Server compiler detected.
JVM version is 25.352-b08

using parallel threads in the new generation.
using thread-local object allocation.
Concurrent Mark-Sweep GC

Heap Configuration:
MinHeapFreeRatio = 40
MaxHeapFreeRatio = 70
MaxHeapSize = 12582912000 (12000.0MB)
NewSize = 87359488 (83.3125MB)
MaxNewSize = 697892864 (665.5625MB)
OldSize = 174784512 (166.6875MB)
NewRatio = 2
SurvivorRatio = 8
MetaspaceSize = 21807104 (20.796875MB)
CompressedClassSpaceSize = 1073741824 (1024.0MB)
MaxMetaspaceSize = 17592186044415 MB
G1HeapRegionSize = 0 (0.0MB)

Heap Usage:
New Generation (Eden + 1 Survivor Space):
capacity = 628162560 (599.0625MB)
used = 346638648 (330.5803756713867MB)
free = 281523912 (268.4821243286133MB)
55.18295264206768% used
Eden Space:
capacity = 558432256 (532.5625MB)
used = 287311800 (274.0018844604492MB)
free = 271120456 (258.5606155395508MB)
51.4497142514633% used
From Space:
capacity = 69730304 (66.5MB)
used = 59326848 (56.5784912109375MB)
free = 10403456 (9.9215087890625MB)
85.0804379111842% used
To Space:
capacity = 69730304 (66.5MB)
used = 0 (0.0MB)
free = 69730304 (66.5MB)
0.0% used
concurrent mark-sweep generation:
capacity = 11885019136 (11334.4375MB)
used = 8087267512 (7712.619316101074MB)
free = 3797751624 (3621.818183898926MB)
68.04589390608113% used

39802 interned Strings occupying 4115760 bytes.

好的 麻烦当前再打个jstat 我们先基于jmap看下

jvm的内存会有预留的,你看下 jstat -gc pid 就知道了。OC是指old区的capacity,OU是指old区实际使用的情况。

你是说直接内存吗 MaxDirectMemorySize我们没有设置 默认适合堆内存一样大 是不是这部分内存占用很多 怎么看

jstat拿到的数据和监控的数据对的上来,jstat和jmap只能看堆的内存吧 我感觉是堆外直接内存

请问有排查思路吗

jstat -gc的图里:s0C + S1C + EC + OC + MC = 12398360就已经占了12G了,再加上jvm本身需要的一些内存,已经很接近top里的13.7G了

1赞