Open nathanchoui opened 2 years ago
我也碰到这个问题了, 时间越长, 堆积的越厉害 java.util.concurrent.atomic.LongAdder内存占比高达70%
我也碰到这个问题了, 时间越长, 堆积的越厉害 java.util.concurrent.atomic.LongAdder内存占比高达70%
这个问题其实挺严重的,官方没有很重视,内存占用大的话根本无法上生产
这个问题有进展吗
https://github.com/alibaba/Sentinel/pull/2802 MetricNode 对象的占用有缓解。LongAddr 可以从业务角度出发,减少统计。
生产上有遇到 YGC 某一瞬间耗时突增,后续时间越来越长,dump 出来发现 MetricNode 对象实例最多,占用内存快800M 了;不知道是不是这个影响的 YGC 耗时
同遇到该问题,只要引用了包就会统计,大量占用内存,10堆内存sentinel占用了2个多g
确实占用太大了,半年后需要占用几个G,盼修复
在JDK21-虚拟线程上也出现同样问题, 极端情况可能造成GC卡死的情况, 小服务, 访问量不大 , 但是MetricNode太多了
num #instances #bytes class name (module)
-------------------------------------------------------
1: 763402 301735000 [B (java.base@21.0.1)
2: 7333 51136656 [C (java.base@21.0.1)
3: 30978 49766888 Ljdk.internal.vm.FillerArray; (java.base@21.0.1)
4: 267681 21414480 com.alibaba.csp.sentinel.node.metric.MetricNode
5: 541147 17316704 java.util.HashMap$Node (java.base@21.0.1)
6: 112535 12039152 [Ljava.lang.Object; (java.base@21.0.1)
7: 445648 10695552 java.lang.String (java.base@21.0.1)
同样的问题, 占用了三分之一的内存
Issue Description
Type: feature request
Describe what happened (or what feature you want)
客户端集成到服务以后,通过对比接入前与接入后的监控信息发现,接入sentinel后内存占用明显升高。 平均内存占用增加350MB,峰值内存占用增加900多兆,并且主要集中在老年代。 通过分析jvm dump文件,占用内存较大的几个对象是:com.alibaba.csp.sentinel.node.metric.MetricNode、java.util.concurrent.atomic.LongAdder、com.alibaba.csp.sentinel.slots.statistic.base.WindowWrap等。
Describe what you expected to happen
作为一个微服务,这些内存占用有些难以让人接受,希望能尽量减少内存的占用。
How to reproduce it (as minimally and precisely as possible)
Tell us your environment
sentinel 1.8.2 openjdk 1.8 springboot 2.x
Anything else we need to know?
控制台每隔十秒从客户端拉取meteic信息。