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