Hi Stanislav. We use OpenJDK and use Alpine Linux based images. See java version below. In our environment availableProcessors returns CPU's for the host.
Did you mean to try Oracle's JDK 8u151? arseny@kovalchuka-ubuntu:~/kipod-x$ ku exec ignite-instance-0 -ti bash bash-4.4# java -version openjdk version "1.8.0_151" OpenJDK Runtime Environment (IcedTea 3.6.0) (Alpine 8.151.12-r0) OpenJDK 64-Bit Server VM (build 25.151-b12, mixed mode) bash-4.4# jjs jjs> print(java.lang.Runtime.runtime.availableProcessors()); 40 jjs> Arseny Kovalchuk Senior Software Engineer at Synesis skype: arseny.kovalchuk mobile: +375 (29) 666-16-16 LinkedIn Profile <http://www.linkedin.com/in/arsenykovalchuk/en> On 26 December 2017 at 16:56, Yakov Zhdanov <yzhda...@gridgain.com> wrote: > Ilya, agree. I like IGNITE_AVAILABLE_CPU more. > > Yakov Zhdanov, > www.gridgain.com > > 2017-12-26 16:36 GMT+03:00 Ilya Lantukh <ilant...@gridgain.com>: > >> Hi Yakov, >> >> I think that property IGNITE_NODES_PER_HOST, as you suggested, would be >> confusing, because users might want to reduce amount of available resources >> for ignite node not only because they run multiple nodes per host, but also >> because they run other software. Also, in my opinion all types of system >> resources (CPU, memory, network) shouldn't be scaled using the same value. >> >> So I'd prefer to have IGNITE_CONCURRENCY_LEVEL or >> IGNITE_AVAILABLE_PROCESSORS, as it was originally suggested. >> >> On Tue, Dec 26, 2017 at 4:05 PM, Yakov Zhdanov <yzhda...@apache.org> >> wrote: >> >>> Cross-posting to dev list. >>> >>> Guys, >>> >>> Suggestion below makes sense to me. Filed a ticket >>> https://issues.apache.org/jira/browse/IGNITE-7310 >>> >>> Perhaps, Arseny would like to provide a PR himself ;) >>> >>> --Yakov >>> >>> 2017-12-26 14:32 GMT+03:00 Arseny Kovalchuk <arseny.kovalc...@synesis.ru >>> >: >>> >>> > Hi guys. >>> > >>> > Ignite configures all thread pools, selectors, etc. basing on >>> Runtime.availableProcessors() >>> > which seems not correct in containerized environment. In Kubernetes >>> with >>> > Docker that method returns CPU count of a Node/machine, which is 64 in >>> our >>> > particular case. But those 64 CPU and their timings are shared between >>> > other stuff on the node like other Pods and services. Appropriate >>> value of >>> > available cores for Pod is usually configured as CPU Resource and >>> estimated >>> > basing on different things taking performance into account. General >>> idea, >>> > if you want to run several Pods on the same node, they all should >>> request >>> > less resources then the node provides. So, we give 4-8 cores for Ignite >>> > instance in Kubernetes, but Ignite's thread pools are configured like >>> they >>> > get all 64 CPUs, and in turn we get a lot of threads for the Pod with >>> 4-8 >>> > cores available. >>> > >>> > Now we manually set appropriate values for all available properties >>> which >>> > relate to thread pools. >>> > >>> > Would it be correct to have one environment variable, say >>> > IGNITE_CONCURRENCY_LEVEL which will be used as a reference value for >>> those >>> > configurations and by default equals to Runtime.availableProcessors()? >>> > >>> > Thanks. >>> > >>> > >>> > Arseny Kovalchuk >>> > >>> > Senior Software Engineer at Synesis >>> > skype: arseny.kovalchuk >>> > mobile: +375 (29) 666-16-16 <+375%2029%20666-16-16> >>> > LinkedIn Profile <http://www.linkedin.com/in/arsenykovalchuk/en> >>> > >>> >> >> >> >> -- >> Best regards, >> Ilya >> > >