sohutv / cachecloud

搜狐视频(sohu tv)Redis私有云平台 :支持Redis多种架构(Standalone、Sentinel、Cluster)高效管理、有效降低大规模redis运维成本,提升资源管控能力和利用率。平台提供快速搭建/迁移,运维管理,弹性伸缩,统计监控,客户端整合接入等功能。(CacheCloud is a Redis cloud management platform. It supports Standalone, Sentinel, and Cluster architectures for Redis, effectively reducing large-scale Redis operation and maintenance costs, and improving resource management and utilization. The platform provides rapid construction/migration, operation and maintenance management, elastic scaling, statistical monitoring, client integration and access and other functions)
http://cachecloud.github.io/
Apache License 2.0
8.91k stars 2.04k forks source link

CacheCloud OOM #152

Closed aStonegod closed 3 years ago

aStonegod commented 6 years ago

CacheCloud Master 版本(支持密码),发现OOM , DUMP 分析结果如下: Class Name | Objects | Shallow Heap | Retained Heap

char[] | 4,202,828 | 190,431,392 | >= 190,431,392 java.lang.String | 4,198,437 | 100,762,488 | >= 286,358,696 java.util.concurrent.ConcurrentHashMap$HashEntry | 4,058,481 | 129,871,392 | >= 828,418,008 java.util.concurrent.locks.ReentrantLock$NonfairSync| 2,757,380 | 88,236,160 | >= 88,236,744 java.util.concurrent.ConcurrentHashMap$Segment | 2,756,162 | 110,246,480 | >= 837,410,632 java.util.concurrent.ConcurrentHashMap$HashEntry[] | 2,756,162 | 84,425,272 | >= 837,278,072 java.util.concurrent.atomic.AtomicLong | 2,749,664 | 65,991,936 | >= 65,991,960 com.sohu.tv.jedis.stat.model.ValueLengthModel | 1,344,756 | 32,274,144 | >= 42,809,664 java.util.concurrent.ConcurrentHashMap$Segment[] | 1,269,907 | 101,591,312 | >= 837,515,704 java.util.concurrent.ConcurrentHashMap | 1,269,906 | 60,955,488 | >= 837,531,560 com.sohu.tv.jedis.stat.utils.AtomicLongMap | 1,269,430 | 20,310,880 | >= 654,450,864 com.sohu.tv.jedis.stat.model.CostTimeDetailStatKey | 1,256,961 | 30,167,064 | >= 120,260,280 java.util.HashMap$Entry | 104,446 | 3,342,272 | >= 25,308,312 byte[] | 68,656 | 8,273,888 | >= 8,273,888 org.springframework.boot.loader.util.AsciiBytes | 65,601 | 2,099,232 | >= 9,001,816

Class Name | Objects | Shallow Heap | Retained Heap

char[] | 4,202,828 | 190,431,392 | >= 190,431,392 java.lang.String | 4,198,437 | 100,762,488 | >= 286,358,696 java.util.concurrent.ConcurrentHashMap$HashEntry | 4,058,481 | 129,871,392 | >= 828,418,008 java.util.concurrent.locks.ReentrantLock$NonfairSync| 2,757,380 | 88,236,160 | >= 88,236,744 java.util.concurrent.ConcurrentHashMap$Segment | 2,756,162 | 110,246,480 | >= 837,410,632 java.util.concurrent.ConcurrentHashMap$HashEntry[] | 2,756,162 | 84,425,272 | >= 837,278,072 java.util.concurrent.atomic.AtomicLong | 2,749,664 | 65,991,936 | >= 65,991,960 com.sohu.tv.jedis.stat.model.ValueLengthModel | 1,344,756 | 32,274,144 | >= 42,809,664 java.util.concurrent.ConcurrentHashMap$Segment[] | 1,269,907 | 101,591,312 | >= 837,515,704 java.util.concurrent.ConcurrentHashMap | 1,269,906 | 60,955,488 | >= 837,531,560 com.sohu.tv.jedis.stat.utils.AtomicLongMap | 1,269,430 | 20,310,880 | >= 654,450,864 com.sohu.tv.jedis.stat.model.CostTimeDetailStatKey | 1,256,961 | 30,167,064 | >= 120,260,280 java.util.HashMap$Entry | 104,446 | 3,342,272 | >= 25,308,312 byte[] | 68,656 | 8,273,888 | >= 8,273,888 org.springframework.boot.loader.util.AsciiBytes | 65,601 | 2,099,232 | >= 9,001,816

Class Name | Shallow Heap | Retained Heap

com.sohu.tv.jedis.stat.model.CostTimeDetailStatKey @ 0xbb0000c0 | 24 | 96 '- key java.util.concurrent.ConcurrentHashMap$HashEntry @ 0xbb000260 | 32 | 1,560 '- [59037] java.util.concurrent.ConcurrentHashMap$HashEntry[131072] @ 0xe5000000 | 524,304 | 42,531,472 '- table java.util.concurrent.ConcurrentHashMap$Segment @ 0xc5cc3a20 | 40 | 42,531,544 '- [4] java.util.concurrent.ConcurrentHashMap$Segment[16] @ 0xc9523980 | 80 | 680,437,296 '- segments java.util.concurrent.ConcurrentHashMap @ 0xc9523950 | 48 | 680,437,344 '- DATA_COST_TIME_MAP_ALL class com.sohu.tv.jedis.stat.data.UsefulDataCollector @ 0xc5bbe3c8| 40 | 979,098,064 '- [5746] java.lang.Object[10240] @ 0xc918ee18 | 40,976 | 982,214,856

DATA_COST_TIME_MAP_ALL 定义如下: private static ConcurrentHashMap<CostTimeDetailStatKey, AtomicLongMap> DATA_COST_TIME_MAP_ALL = new ConcurrentHashMap<CostTimeDetailStatKey, AtomicLongMap>();

怀疑是ConcurrentHashMap没有释放造成, 请大神确认下

carlosfu commented 5 years ago

麻烦问下是JDK几