Sentinel icon indicating copy to clipboard operation
Sentinel copied to clipboard

LeapArray#currentWindow resetWindowTo 是否需要double check?

Open TavenYin opened this issue 4 years ago • 9 comments

描述

image

个人理解,会不会多个线程同时满足 windowStart > old.windowStart(),并且一个线程先获取了锁,执行完了 resetWindowTo 并释放锁。此时另一个线程又获得了锁,又执行了一次 resetWindowTo

版本

1.8.0 并且看了下master分支代码也是这样的

TavenYin avatar Jun 09 '21 02:06 TavenYin

我们在使用的过程中定位了一个问题,我们有一个应用也没多少QPS,但在某种情况下CPU被耗尽了,用火焰图工具发现全部都在Thread.yield()这里。(但被触发监控到的次数不多,但让使用者很不爽,说是Sentinel影响到了他们系统就不用了) 但神奇的是很多系统的QPS都很大,但是没有发现这种问题。 期望作者能讨论一下这个类的实现,是否在多线程竞争的情况下有某个点导致的。 Uploading image.png…

cookiejoo avatar Jan 07 '22 02:01 cookiejoo

@cookiejoo 帮忙补一下相关的火焰图或其它性能数据,上面的图没有传上来

sczyh30 avatar Jan 07 '22 08:01 sczyh30

6F0B283D-8F0D-48B6-9943-2F989469ABD2

cookiejoo avatar Jan 07 '22 09:01 cookiejoo

未命名文件

cookiejoo avatar Jan 10 '22 01:01 cookiejoo

@cookiejoo 你好,我们现在也遇到了这个cpu冲高的问题,对于这个问题你们有定位原因或者解决方案吗

luffy0223 avatar Apr 07 '22 08:04 luffy0223

未命文件

请问你们解决这个问题了吗?我们现在也遇到了这种问题

justlau avatar Mar 20 '23 08:03 justlau

没啊,暂时搞不定

cookiejoo avatar Apr 04 '23 05:04 cookiejoo

大佬现在找到原因了吗?

JayChou510 avatar Jul 07 '23 05:07 JayChou510

同遇到,10个pod,一个pod cpu直接打满,摘掉流量也无法恢复。

dengtianlang avatar Nov 14 '24 08:11 dengtianlang