alibaba/Sentinel

基于ConcurrentLinkedHashMap实现的CacheMap会导致在高CPU核数下,单个接口产生的ParameterMetric对象很大的问题

Open

#2.565 geöffnet am 11. Feb. 2022

Auf GitHub ansehen
 (4 Kommentare) (0 Reaktionen) (0 zugewiesene Personen)Java (8.150 Forks)batch import
area/performancegood first issue

Repository-Metriken

Stars
 (23.109 Stars)
PR-Merge-Metriken
 (Keine gemergten PRs in 30 T)

Beschreibung

Issue Description

ConcurrentLinkedHashMap在构造二维数组时会根据CPU核心数来计算出当前数组的一维下标长度,当核数为96时,下标为128,此时单个ParameterMetric对象大小接近1M,如下图所示:

image

当接口调用量较大时,此处将会占用大量内存,sentinel是否有考虑过这块的内存使用,或者切成其他Cache?毕竟googlecode.concurrentlinkedhashmap作者也建议使用Caffeine了.

Tell us your environment

springboot 2.3.10 sentinel 1.7.2 springcloudgateway 2.2.6

Anything else we need to know?

sentinel在后续版本中是否有意向对这块进行修改?

Contributor Guide