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 > >