You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@ignite.apache.org by John Wilson <sa...@gmail.com> on 2017/08/02 23:00:49 UTC

Ignite Benchmark has very low CPU utilization, why?

Hi,

I was running Yardstick-Ignite benchmark,
https://github.com/apacheignite/yardstick-ignite, on a 3 node cluster. I
used one node for client node and the others for server nodes.

I run the IgnitePutBenchmark and found out that the CPU utilization on
server nodes is very low (~20%) Can you suggest a configuration to push the
CPU utilization to max? [all my nodes have 36 logical cores].

On the published benchmark results that compare against Hazelcast, what was
the CPU utilization?

benchmark.properties:

# JVM options.
JVM_OPTS=${JVM_OPTS}" -DIGNITE_QUIET=false"
# Uncomment to enable concurrent garbage collection (GC) if you encounter
long GC pauses.
JVM_OPTS=${JVM_OPTS}" \
-Xms6g \
-Xmx6g \
-XX:+UseParNewGC \
-XX:+UseConcMarkSweepGC \
"
# List of default probes.
# Add DStatProbe or VmStatProbe if your OS supports it (e.g. if running on
Linux).
BENCHMARK_DEFAULT_PROBES=ThroughputLatencyProbe,PercentileProbe,DStatProbe
# Packages where the specified benchmark is searched by reflection
mechanism.
BENCHMARK_PACKAGES=org.yardstickframework,org.apache.ignite.yardstick
# Deploy binaries to remote nodes.
AUTO_COPY=true
# Restart server after each benchmark.
RESTART_SERVERS=true
# Probe point writer class name.
# BENCHMARK_WRITER=
# Comma-separated list of the hosts to run BenchmarkServers on. 2 nodes on
local host are enabled by default.
SERVER_HOSTS=server-node-1,server-node-2
# Comma-separated list of the hosts to run BenchmarkDrivers on. 1 node on
local host is enabled by default.
DRIVER_HOSTS=localhost
# Remote username.
# REMOTE_USER=
# Number of nodes, used to wait for the specified number of nodes to start.
nodesNum=$((`echo ${SERVER_HOSTS} | tr ',' '\n' | wc -l` + `echo
${DRIVER_HOSTS} | tr ',' '\n' | wc -l`))
# Ignite version.
ver="ignite-1.9-"
# Backups count.
b=1
# Warmup.
w=60
# Duration.
d=300
# Threads count.
t=36
# Run configuration which contains all benchmarks.
# Note that each benchmark is set to run for 300 seconds (5 mins) with
warm-up set to 60 seconds (1 minute).
CONFIGS="\
-cfg ${SCRIPT_DIR}/../config/ignite-localhost-config.xml -nn ${nodesNum} -b
${b} -w ${w} -d ${d} -t ${t} -sm PRIMARY_SYNC --client -dn
IgnitePutBenchmark -sn IgniteNode -ds ${ver}atomic-put-${b}-backup,\

"

Re: Ignite Benchmark has very low CPU utilization, why?

Posted by Yakov Zhdanov <yz...@apache.org>.
Michael, according to the first message in this thread all machines have 36
cores. The thing is that client threads call cache operation and wait for
response from server. So, most of the time client is waiting. I would have
at least 36 * 4 threads on client side. And also start more clients. I
think it is almost impossible to fully utilize resources of 2 servers from
only client. Can we start 3-4 clients?

--Yakov

Re: Ignite Benchmark has very low CPU utilization, why?

Posted by Mikhail <mi...@gmail.com>.
How many CPUs have you client?

as you can see you set
# Threads count.
t=36

that means that client will make put to cache from 36 threads, do you have
36 cores on client?

Low utilization cpu on servers means that you client doesn't produce enough
work for servers, try to increase number of clients.



--
View this message in context: http://apache-ignite-users.70518.x6.nabble.com/Ignite-Benchmark-has-very-low-CPU-utilization-why-tp15925p15943.html
Sent from the Apache Ignite Users mailing list archive at Nabble.com.