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 <jakov.varen...@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


Reply via email to