You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@geode.apache.org by Jakov Varenina <ja...@est.tech> on 2022/02/01 17:53:45 UTC

Re: Question regarding geode thread priorities

Hi Kirk,

No problem and thank you for the answer!

Best Regards :),

Jakov

On 27. 01. 2022. 00:42, Kirk Lund wrote:
> PS: Sorry if I didn't realize what BRs is :D
>
> On Wed, Jan 26, 2022 at 3:39 PM Kirk Lund <kl...@apache.org> wrote:
>
>> Hi BRs/Jakov,
>>
>> I'm familiar with most of these threads, and these ones I know of do not
>> spawn more than one thread total. Most of these are quite old, possibly
>> predating Executors in Java. I doubt using max priority is important for
>> these threads, but you should probably do some perf testing if you want to
>> remove setMaxPriority. I recommend using
>> https://github.com/apache/geode-benchmarks as well as writing targeted
>> JMH micro-benchmarks.
>>
>> Cheers,
>> Kirk
>>
>> On Mon, Jan 24, 2022 at 3:50 AM Jakov Varenina <ja...@est.tech>
>> wrote:
>>
>>> Hi community,
>>>
>>> We have came across to some code in geode that prioritizes some of the
>>> threads using
>>>
>>> https://cr.openjdk.java.net/~iris/se/11/latestSpec/api/java.base/java/lang/Thread.html#setPriority(int).
>>>
>>> Below you can find links to code.
>>>
>>>
>>> https://github.com/apache/geode/blob/41eb49989f25607acfcbf9ac5afe3d4c0721bb35/geode-core/src/main/java/org/apache/geode/internal/statistics/HostStatSampler.java#L304
>>>
>>>
>>> https://github.com/apache/geode/blob/41eb49989f25607acfcbf9ac5afe3d4c0721bb35/geode-core/src/main/java/org/apache/geode/internal/cache/control/OffHeapMemoryMonitor.java#L92
>>>
>>>
>>> https://github.com/apache/geode/blob/d79a3c78eab96a9e760db07fa42580e61586b9c5/geode-core/src/main/java/org/apache/geode/internal/cache/control/InternalResourceManager.java#L147
>>>
>>>
>>> https://github.com/apache/geode/blob/a5bd36f9fa787d3a71c6e6efafed5a7b0fe52d2b/geode-core/src/main/java/org/apache/geode/internal/tcp/TCPConduit.java#L343
>>>
>>> Just to add that every new thread inherits parent thread priority, so
>>> that means that there will be more thread with max priority in addition
>>> to the above threads. Does somebody know why this is set for these
>>> particular threads?
>>>
>>> Additionally, in multiple online resources it is indicated that these
>>> priories are not taken into the account by the Linux scheduler unless
>>> additional parameters in JVM are set (UseThreadPriorities and
>>> ThreadPriorityPolicy), please check links for more information's:
>>>
>>> https://github.com/openjdk/jdk/blob/jdk8-b120/hotspot/src/share/vm/runtime/globals.hpp#L3369,L3392
>>> and
>>>
>>> https://github.com/openjdk/jdk/blob/jdk8-b120/hotspot/src/os/linux/vm/os_linux.cpp#L3961,L3966
>>>
>>> Are these priorities that are set in Apache Geode code crucial and
>>> should be enabled for better performance, or they shouldn't be used?
>>> Also did I maybe miss something and these priorities are somehow used
>>> even without setting mentioned JVM parameters?
>>>
>>> Any help on this topic is welcome and sorry for bothering!
>>>
>>> BRs/Jakov
>>>
>>>