You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@ignite.apache.org by summasumma <by...@gmail.com> on 2018/11/22 17:28:14 UTC

Ignite benchmarking with YCSB

Hi all,

I am trying to benchmark ignite with ycsb tool as follows:

Ignite Cluster: 
----------------
3 ignite-nodes each running in 1 VM (3 seperate VMs in cluster)

VM details:
--------------
CPU: 4 V-CPU (Intel(R) Core(TM) i7-6700 CPU @ 3.40GHz)
RAM: 16 Gb 
SSD: 40 GB
Network: 1 Gb/s

Apache Ignite Parameters
------------------------------
Version: Apache Ignite 2.6
Persistence: Disabled (pure in-memory key-value data store).
Caches mode: Partitioned / ATOMIC.
Backups: 1 
Write synchronization mode: PRIMARY_SYNC.
Max_Size/Initial_Size: 12 GB / 12 GB

YCSB Workload Configuration:
---------------------------------
recordcount=6000000           ----------------> 6 million records each of
size 1kb (total size:; 5.7 GB)
operationcount=6000000
workload=com.yahoo.ycsb.workloads.CoreWorkload
readallfields=true
insertproportion=1              ------------------> 100% only INSERT
operation
readproportion=0
updateproportion=0
scanproportion=0
requestdistribution=zipfian
threadcount=100             ------------------->  100 threads
target=75000                  ------------------->  75k Operations Per
Second (OPS)

Benchmark Results:
----------------------
[OVERALL], RunTime(ms), 64877
[OVERALL], Throughput(ops/sec), 46241.34901428858         --------------->
46k OPS*******
[TOTAL_GCS_PS_Scavenge], Count, 87
[TOTAL_GC_TIME_PS_Scavenge], Time(ms), 162
[TOTAL_GC_TIME_%_PS_Scavenge], Time(%), 0.2497032846771583
[TOTAL_GCS_PS_MarkSweep], Count, 2
[TOTAL_GC_TIME_PS_MarkSweep], Time(ms), 66
[TOTAL_GC_TIME_%_PS_MarkSweep], Time(%), 0.10173096783143488
[TOTAL_GCs], Count, 89
[TOTAL_GC_TIME], Time(ms), 228
[TOTAL_GC_TIME_%], Time(%), 0.35143425250859317
[CLEANUP], Operations, 100
[CLEANUP], AverageLatency(us), 359.8
[CLEANUP], MinLatency(us), 0
[CLEANUP], MaxLatency(us), 35775
[CLEANUP], 95thPercentileLatency(us), 6
[CLEANUP], 99thPercentileLatency(us), 11
[INSERT], Operations, 3000000
[INSERT], AverageLatency(us), 2089.05358  -----------------> 2 MilliSeconds
Latency
[INSERT], MinLatency(us), 328
[INSERT], MaxLatency(us), 64927
[INSERT], 95thPercentileLatency(us), 3969
[INSERT], 99thPercentileLatency(us), 6835

As you can see from the benchmark results that:
Expected OPS: 75k OPS
Actual OPS result:  only 46k OPS 

During this run, i have captured the system resource details as shown below:
CPU (Ignite / YCSB )              :  40% / 35% 
Mem(Ignite / YCSB )              :  6.5 GB / 1.1 GB
Network(Ignite/YCSB in Mbps):  700rx-350tx / 30rx-500tx

My question is:
1. There is no system resource limit hit in both ignite and ycsb, So why is
that the actual result is not going above 46k OPS ? what is stopping here? I
even tried increasing threads in ycsb but not getting any improvement even
with that.

2. On ignite machine, in the top command i can see below ignite app showing
> 100%:
==CPU%   MEM%  VIRT  RES     PID     USER          TIME+ THR  NI S  R/s W/s 
Command
==141.8    37.1    16.6G 5.76G 19099    root          10:39 86    0 S    0 0   
/usr/bin/java -Xms1g -Xmx1g

But the overall cpu display(not individual process cpu as shown above) at
the top command was never crossed 50% (Load factor is 2 during this time). 
Since its not crossed 50% i assume CPU still has juice to take more ignite
ops. Is this correct?

3. Is the latency displayed in ycsb output above(2 millisecond) be still
optimized? Again network/cpu is not exhausted. So it should be possible? Is
there a ignite-latency measurement tool (similar to redis?) available? 

4. Any other parameters in the system is blocking to this limit? like tcp
open connections/tcp buffer size etc) ?

Any help highly appreciated. 
Please clarify.

Thanks
summa



--
Sent from: http://apache-ignite-users.70518.x6.nabble.com/

Re: Ignite benchmarking with YCSB

Posted by "ilya.kasnacheev" <il...@gmail.com>.
Hello!

Unfortunately there's not enoug info to be able to debug this further.

I don't think you can get Ignite to use both IPs to connect client to
server, unless you start two differing server nodes with different own IP.

Regards,



--
Sent from: http://apache-ignite-users.70518.x6.nabble.com/

Re: Ignite benchmarking with YCSB

Posted by summasumma <by...@gmail.com>.
Hi Ilya,

In early execution the writesyncmode=prim_sync was not set.
I made this correction and enabled and able to get this performance.

Even now CPU is not going above 50% in 3 node ignite cluster.
network bandwidhth: 700 mbps rx and 350 tx.
Not sure if there is any way now to improve above 55k per ycsb Insert????

Soon will share other events like update/read results.

Thanks,
...summa



--
Sent from: http://apache-ignite-users.70518.x6.nabble.com/

Re: Ignite benchmarking with YCSB

Posted by Ilya Kasnacheev <il...@gmail.com>.
Hello!

Looks like your numbers have improved. What change would lead to such
improvement? What's the current CPU utilization?

Regards,
-- 
Ilya Kasnacheev


пн, 3 дек. 2018 г. в 12:48, summasumma <by...@gmail.com>:

> HI Ilya,
>
> Thanks for all the inputs.
>
> Latest update is:
>
> Attempted Insert: 120k
> 2 YCSB each with 80 threads giving: 54.5k / 54.5k = total 109k
>
> - Failed to touch target 120k
> - This is with Primary_Sync enabled in ignite but without Threadpool=64 or
> connection pair.
>
> Increasing System/Public pool configuration or enabled connection-pair
> options didn't real helped in improving performance from here.
>
> Thanks,
> ...summa
>
>
>
>
> --
> Sent from: http://apache-ignite-users.70518.x6.nabble.com/
>

Re: Ignite benchmarking with YCSB

Posted by summasumma <by...@gmail.com>.
HI Ilya,

Thanks for all the inputs.

Latest update is:

Attempted Insert: 120k	
2 YCSB each with 80 threads giving: 54.5k / 54.5k = total 109k

- Failed to touch target 120k 
- This is with Primary_Sync enabled in ignite but without Threadpool=64 or
connection pair.

Increasing System/Public pool configuration or enabled connection-pair
options didn't real helped in improving performance from here.

Thanks,
...summa




--
Sent from: http://apache-ignite-users.70518.x6.nabble.com/

Re: Ignite benchmarking with YCSB

Posted by Ilya Kasnacheev <il...@gmail.com>.
Hello!

I'm afraid I have no idea anymore. Will it help if you decrease number of
YCSB threads? Is it possible that YCSB uses the same key over and over
again?

Regards,
-- 
Ilya Kasnacheev


пт, 30 нояб. 2018 г. в 09:05, summasumma <by...@gmail.com>:

> Hi Ilya,
>
> I have tried to set the following and rerun the same workload.
>        <property name="usePairedConnections" value="true"/>
>         <property name="connectionsPerNode" value="4"/>
>
> But this time the performance got degraded from 56k Ops per YCSB to 47k
> Ops.
>
> PFA the thread dump with pairedconnection enabled:
>
> ycsb-1:
> --------
> ycsb1_dump1.ycsb1_dump1
> <
> http://apache-ignite-users.70518.x6.nabble.com/file/t2137/ycsb1_dump1.ycsb1_dump1>
>
> ycsb1_dump2.ycsb1_dump2
> <
> http://apache-ignite-users.70518.x6.nabble.com/file/t2137/ycsb1_dump2.ycsb1_dump2>
>
> ycsb-2:
> --------
> ycsb2_dump1.ycsb2_dump1
> <
> http://apache-ignite-users.70518.x6.nabble.com/file/t2137/ycsb2_dump1.ycsb2_dump1>
>
> ycsb2_dump2.ycsb2_dump2
> <
> http://apache-ignite-users.70518.x6.nabble.com/file/t2137/ycsb2_dump2.ycsb2_dump2>
>
>
>
> Ignite-1:
> ======
> ignite1_connpair_dump1.ignite1_connpair_dump1
> <
> http://apache-ignite-users.70518.x6.nabble.com/file/t2137/ignite1_connpair_dump1.ignite1_connpair_dump1>
>
> ignite1_connpair_dump2.ignite1_connpair_dump2
> <
> http://apache-ignite-users.70518.x6.nabble.com/file/t2137/ignite1_connpair_dump2.ignite1_connpair_dump2>
>
>
> Ignite-2:
> ======
> ignite2_connpair_dump1.ignite2_connpair_dump1
> <
> http://apache-ignite-users.70518.x6.nabble.com/file/t2137/ignite2_connpair_dump1.ignite2_connpair_dump1>
>
> ignite2_connpair_dump2.ignite2_connpair_dump2
> <
> http://apache-ignite-users.70518.x6.nabble.com/file/t2137/ignite2_connpair_dump2.ignite2_connpair_dump2>
>
>
> Ignite-3:
> =====
> ignite3_connpair_dump1.ignite3_connpair_dump1
> <
> http://apache-ignite-users.70518.x6.nabble.com/file/t2137/ignite3_connpair_dump1.ignite3_connpair_dump1>
>
> ignite3_connpair_dump2.ignite3_connpair_dump2
> <
> http://apache-ignite-users.70518.x6.nabble.com/file/t2137/ignite3_connpair_dump2.ignite3_connpair_dump2>
>
>
> Please clarify.
>
> Thanks,
> ...summa
>
>
>
> --
> Sent from: http://apache-ignite-users.70518.x6.nabble.com/
>

Re: Ignite benchmarking with YCSB

Posted by summasumma <by...@gmail.com>.
Hi Ilya,

I have tried to set the following and rerun the same workload. 
       <property name="usePairedConnections" value="true"/>
        <property name="connectionsPerNode" value="4"/>

But this time the performance got degraded from 56k Ops per YCSB to 47k Ops.

PFA the thread dump with pairedconnection enabled:

ycsb-1:
--------
ycsb1_dump1.ycsb1_dump1
<http://apache-ignite-users.70518.x6.nabble.com/file/t2137/ycsb1_dump1.ycsb1_dump1>  
ycsb1_dump2.ycsb1_dump2
<http://apache-ignite-users.70518.x6.nabble.com/file/t2137/ycsb1_dump2.ycsb1_dump2>  
ycsb-2:
--------
ycsb2_dump1.ycsb2_dump1
<http://apache-ignite-users.70518.x6.nabble.com/file/t2137/ycsb2_dump1.ycsb2_dump1>  
ycsb2_dump2.ycsb2_dump2
<http://apache-ignite-users.70518.x6.nabble.com/file/t2137/ycsb2_dump2.ycsb2_dump2>  


Ignite-1:
======
ignite1_connpair_dump1.ignite1_connpair_dump1
<http://apache-ignite-users.70518.x6.nabble.com/file/t2137/ignite1_connpair_dump1.ignite1_connpair_dump1>  
ignite1_connpair_dump2.ignite1_connpair_dump2
<http://apache-ignite-users.70518.x6.nabble.com/file/t2137/ignite1_connpair_dump2.ignite1_connpair_dump2>  

Ignite-2:
======
ignite2_connpair_dump1.ignite2_connpair_dump1
<http://apache-ignite-users.70518.x6.nabble.com/file/t2137/ignite2_connpair_dump1.ignite2_connpair_dump1>  
ignite2_connpair_dump2.ignite2_connpair_dump2
<http://apache-ignite-users.70518.x6.nabble.com/file/t2137/ignite2_connpair_dump2.ignite2_connpair_dump2>  

Ignite-3:
=====
ignite3_connpair_dump1.ignite3_connpair_dump1
<http://apache-ignite-users.70518.x6.nabble.com/file/t2137/ignite3_connpair_dump1.ignite3_connpair_dump1>  
ignite3_connpair_dump2.ignite3_connpair_dump2
<http://apache-ignite-users.70518.x6.nabble.com/file/t2137/ignite3_connpair_dump2.ignite3_connpair_dump2>  

Please clarify. 

Thanks,
...summa



--
Sent from: http://apache-ignite-users.70518.x6.nabble.com/

Re: Ignite benchmarking with YCSB

Posted by Ilya Kasnacheev <il...@gmail.com>.
Hello!

It is hard to say what is the limiting factor here. Yes there's a lot of
threads on YCSB side, but still a single one on Ignite side. And it's
sitting on Communication write.

Can you try doing the following: supplying custom TcpCommunicationSpi as
ignite's communicationSpi with
.setUsePairedConnections(true).setConnectionsPerNode(4) on all nodes? I
wonder if we'll see more parallelism that way.

Regards,
-- 
Ilya Kasnacheev


чт, 29 нояб. 2018 г. в 17:59, summasumma <by...@gmail.com>:

> Hi Ilya,
>
> Please find the YCSB side jstack threaddump files along with Ignite side.
>
> Please note that this time i have used 80 threads.
>
> Number of YCSBs: 2
> Threads per YCSB: 80
> YCSB-1 ThreadDump files on 2 occassions:
> ycsb1_load_1.ycsb1_load_1
> <
> http://apache-ignite-users.70518.x6.nabble.com/file/t2137/ycsb1_load_1.ycsb1_load_1>
>
> ycsb1_load_2.ycsb1_load_2
> <
> http://apache-ignite-users.70518.x6.nabble.com/file/t2137/ycsb1_load_2.ycsb1_load_2>
>
>
> YCSB-2 ThreadDump files on 2 occassions:
> ycsb2_load_1.ycsb2_load_1
> <
> http://apache-ignite-users.70518.x6.nabble.com/file/t2137/ycsb2_load_1.ycsb2_load_1>
>
> ycsb2_load_2.ycsb2_load_2
> <
> http://apache-ignite-users.70518.x6.nabble.com/file/t2137/ycsb2_load_2.ycsb2_load_2>
>
>
>
> Number of Ignite nodes in Cluster: 3
> Persistence: False (Pure in-memory)
> Backups: 1
>
> Ignite-Node-1 ThreadDump on 2 occassions:
> ignite1_load_1.txt
> <
> http://apache-ignite-users.70518.x6.nabble.com/file/t2137/ignite1_load_1.txt>
>
> ignite1_load_2.txt
> <
> http://apache-ignite-users.70518.x6.nabble.com/file/t2137/ignite1_load_2.txt>
>
>
> Ignite-Node-2 ThreadDump on 2 occassions:
> ignite2_load_1.ignite2_load_1
> <
> http://apache-ignite-users.70518.x6.nabble.com/file/t2137/ignite2_load_1.ignite2_load_1>
>
> ignite2_load_2.ignite2_load_2
> <
> http://apache-ignite-users.70518.x6.nabble.com/file/t2137/ignite2_load_2.ignite2_load_2>
>
>
> Ignite-Node-3 ThreadDump on 2 occassions:
> ignite3_load_1.ignite3_load_1
> <
> http://apache-ignite-users.70518.x6.nabble.com/file/t2137/ignite3_load_1.ignite3_load_1>
>
> ignite3_load_2.ignite3_load_2
> <
> http://apache-ignite-users.70518.x6.nabble.com/file/t2137/ignite3_load_2.ignite3_load_2>
>
>
>
> Thanks,
> ...summa
>
>
>
> --
> Sent from: http://apache-ignite-users.70518.x6.nabble.com/
>

Re: Ignite benchmarking with YCSB

Posted by summasumma <by...@gmail.com>.
Hi Ilya,

Please find the YCSB side jstack threaddump files along with Ignite side.

Please note that this time i have used 80 threads.

Number of YCSBs: 2
Threads per YCSB: 80
YCSB-1 ThreadDump files on 2 occassions:
ycsb1_load_1.ycsb1_load_1
<http://apache-ignite-users.70518.x6.nabble.com/file/t2137/ycsb1_load_1.ycsb1_load_1>  
ycsb1_load_2.ycsb1_load_2
<http://apache-ignite-users.70518.x6.nabble.com/file/t2137/ycsb1_load_2.ycsb1_load_2>  

YCSB-2 ThreadDump files on 2 occassions:
ycsb2_load_1.ycsb2_load_1
<http://apache-ignite-users.70518.x6.nabble.com/file/t2137/ycsb2_load_1.ycsb2_load_1>  
ycsb2_load_2.ycsb2_load_2
<http://apache-ignite-users.70518.x6.nabble.com/file/t2137/ycsb2_load_2.ycsb2_load_2>  


Number of Ignite nodes in Cluster: 3
Persistence: False (Pure in-memory)
Backups: 1 

Ignite-Node-1 ThreadDump on 2 occassions:
ignite1_load_1.txt
<http://apache-ignite-users.70518.x6.nabble.com/file/t2137/ignite1_load_1.txt>  
ignite1_load_2.txt
<http://apache-ignite-users.70518.x6.nabble.com/file/t2137/ignite1_load_2.txt>  

Ignite-Node-2 ThreadDump on 2 occassions:
ignite2_load_1.ignite2_load_1
<http://apache-ignite-users.70518.x6.nabble.com/file/t2137/ignite2_load_1.ignite2_load_1>  
ignite2_load_2.ignite2_load_2
<http://apache-ignite-users.70518.x6.nabble.com/file/t2137/ignite2_load_2.ignite2_load_2>  

Ignite-Node-3 ThreadDump on 2 occassions:
ignite3_load_1.ignite3_load_1
<http://apache-ignite-users.70518.x6.nabble.com/file/t2137/ignite3_load_1.ignite3_load_1>  
ignite3_load_2.ignite3_load_2
<http://apache-ignite-users.70518.x6.nabble.com/file/t2137/ignite3_load_2.ignite3_load_2>  


Thanks,
...summa



--
Sent from: http://apache-ignite-users.70518.x6.nabble.com/

Re: Ignite benchmarking with YCSB

Posted by Ilya Kasnacheev <il...@gmail.com>.
Hello!

I can see only one node actually doing any work, out of 6. I can see
there's 100 threads on YCSB side, but it doesn't seem that there's actually
any parallelism. Can you also do thread dump of YCSB?

Regards,
-- 
Ilya Kasnacheev


чт, 29 нояб. 2018 г. в 16:20, summasumma <by...@gmail.com>:

> Hi Ilya,
>
> Yes i have taken during the workload and not before or after.
>
> Reattaching after fresh run now. Can u please check and let me know?
>
> load_1.load_1
> <http://apache-ignite-users.70518.x6.nabble.com/file/t2137/load_1.load_1>
>
> load_2.load_2
> <http://apache-ignite-users.70518.x6.nabble.com/file/t2137/load_2.load_2>
>
> load_3.load_3
> <http://apache-ignite-users.70518.x6.nabble.com/file/t2137/load_3.load_3>
>
>
> run_1.run_1
> <http://apache-ignite-users.70518.x6.nabble.com/file/t2137/run_1.run_1>
> run_2.run_2
> <http://apache-ignite-users.70518.x6.nabble.com/file/t2137/run_2.run_2>
> run_3.run_3
> <http://apache-ignite-users.70518.x6.nabble.com/file/t2137/run_3.run_3>
>
>
> Thanks,
> ...summa
>
>
>
> --
> Sent from: http://apache-ignite-users.70518.x6.nabble.com/
>

Re: Ignite benchmarking with YCSB

Posted by summasumma <by...@gmail.com>.
Hi Ilya,

Yes i have taken during the workload and not before or after.

Reattaching after fresh run now. Can u please check and let me know?

load_1.load_1
<http://apache-ignite-users.70518.x6.nabble.com/file/t2137/load_1.load_1>  
load_2.load_2
<http://apache-ignite-users.70518.x6.nabble.com/file/t2137/load_2.load_2>  
load_3.load_3
<http://apache-ignite-users.70518.x6.nabble.com/file/t2137/load_3.load_3>  

run_1.run_1
<http://apache-ignite-users.70518.x6.nabble.com/file/t2137/run_1.run_1>  
run_2.run_2
<http://apache-ignite-users.70518.x6.nabble.com/file/t2137/run_2.run_2>  
run_3.run_3
<http://apache-ignite-users.70518.x6.nabble.com/file/t2137/run_3.run_3>  


Thanks,
...summa



--
Sent from: http://apache-ignite-users.70518.x6.nabble.com/

Re: Ignite benchmarking with YCSB

Posted by Ilya Kasnacheev <il...@gmail.com>.
Hello!

I can't see any work happening in your thread dumps.
Are you sure that you have collected them during your workload, as opposed
to after load is finished (or before it is started)?

Regards,
-- 
Ilya Kasnacheev


чт, 29 нояб. 2018 г. в 15:11, summasumma <by...@gmail.com>:

> Hi Ilya,
>
> I have used jstack to threaddump.
>
> PFA the dump files for your reference.
> These are taken after adding the following 64 Threadpool configuration in
> Apache Ignite configuration and while the Insert operation was happening
> with 55k OPS from YCSB:
>          !-- Configure system thread pool. -->
>         <property name="systemThreadPoolSize" value="64"/>
>
>         <property name="publicThreadPoolSize" value="64"/>
>
> But still i don't see the CPU crossing even 50%.
>
> Can you please let me know any suggestions to dump1_180.dump1_180
> <
> http://apache-ignite-users.70518.x6.nabble.com/file/t2137/dump1_180.dump1_180>
>
> dump3_180.dump3_180
> <
> http://apache-ignite-users.70518.x6.nabble.com/file/t2137/dump3_180.dump3_180>
>
> fully utilize cpu to acheive better performance in Ignite?
>
> Thanks,
> ...Summa
>
>
>
> --
> Sent from: http://apache-ignite-users.70518.x6.nabble.com/
>

Re: Ignite benchmarking with YCSB

Posted by summasumma <by...@gmail.com>.
Hi Ilya,

I have used jstack to threaddump.

PFA the dump files for your reference.
These are taken after adding the following 64 Threadpool configuration in
Apache Ignite configuration and while the Insert operation was happening
with 55k OPS from YCSB:
         !-- Configure system thread pool. -->
        <property name="systemThreadPoolSize" value="64"/>
        
        <property name="publicThreadPoolSize" value="64"/>

But still i don't see the CPU crossing even 50%.

Can you please let me know any suggestions to dump1_180.dump1_180
<http://apache-ignite-users.70518.x6.nabble.com/file/t2137/dump1_180.dump1_180>  
dump3_180.dump3_180
<http://apache-ignite-users.70518.x6.nabble.com/file/t2137/dump3_180.dump3_180>  
fully utilize cpu to acheive better performance in Ignite? 

Thanks,
...Summa



--
Sent from: http://apache-ignite-users.70518.x6.nabble.com/

Re: Ignite benchmarking with YCSB

Posted by Ilya Kasnacheev <il...@gmail.com>.
Hello!

No, you will have to use `jstack` or visualvm to get thread dump and then
read it. It is human readable.

Regards,
-- 
Ilya Kasnacheev


ср, 28 нояб. 2018 г. в 18:07, summasumma <by...@gmail.com>:

> Thanks Ilya for the response.
>
> reg: "You will need to do thread dump mid-benchmark to see which thread
> pools are full." --> can you please let me know if there is visor cli or
> command to check thread dump?
>
> Regards,
>
>
>
>
>
>
>
>
> --
> Sent from: http://apache-ignite-users.70518.x6.nabble.com/
>

Re: Ignite benchmarking with YCSB

Posted by summasumma <by...@gmail.com>.
Thanks Ilya for the response.

reg: "You will need to do thread dump mid-benchmark to see which thread
pools are full." --> can you please let me know if there is visor cli or
command to check thread dump?

Regards,








--
Sent from: http://apache-ignite-users.70518.x6.nabble.com/

Re: Ignite benchmarking with YCSB

Posted by Ilya Kasnacheev <il...@gmail.com>.
Hello!

I would start with tuning thread pool sizes if I see CPU under-loaded:

https://apacheignite.readme.io/docs/thread-pools

You will need to do thread dump mid-benchmark to see which thread pools are
full.

Regards,
-- 
Ilya Kasnacheev


чт, 22 нояб. 2018 г. в 20:28, summasumma <by...@gmail.com>:

> Hi all,
>
> I am trying to benchmark ignite with ycsb tool as follows:
>
> Ignite Cluster:
> ----------------
> 3 ignite-nodes each running in 1 VM (3 seperate VMs in cluster)
>
> VM details:
> --------------
> CPU: 4 V-CPU (Intel(R) Core(TM) i7-6700 CPU @ 3.40GHz)
> RAM: 16 Gb
> SSD: 40 GB
> Network: 1 Gb/s
>
> Apache Ignite Parameters
> ------------------------------
> Version: Apache Ignite 2.6
> Persistence: Disabled (pure in-memory key-value data store).
> Caches mode: Partitioned / ATOMIC.
> Backups: 1
> Write synchronization mode: PRIMARY_SYNC.
> Max_Size/Initial_Size: 12 GB / 12 GB
>
> YCSB Workload Configuration:
> ---------------------------------
> recordcount=6000000           ----------------> 6 million records each of
> size 1kb (total size:; 5.7 GB)
> operationcount=6000000
> workload=com.yahoo.ycsb.workloads.CoreWorkload
> readallfields=true
> insertproportion=1              ------------------> 100% only INSERT
> operation
> readproportion=0
> updateproportion=0
> scanproportion=0
> requestdistribution=zipfian
> threadcount=100             ------------------->  100 threads
> target=75000                  ------------------->  75k Operations Per
> Second (OPS)
>
> Benchmark Results:
> ----------------------
> [OVERALL], RunTime(ms), 64877
> [OVERALL], Throughput(ops/sec), 46241.34901428858         --------------->
> 46k OPS*******
> [TOTAL_GCS_PS_Scavenge], Count, 87
> [TOTAL_GC_TIME_PS_Scavenge], Time(ms), 162
> [TOTAL_GC_TIME_%_PS_Scavenge], Time(%), 0.2497032846771583
> [TOTAL_GCS_PS_MarkSweep], Count, 2
> [TOTAL_GC_TIME_PS_MarkSweep], Time(ms), 66
> [TOTAL_GC_TIME_%_PS_MarkSweep], Time(%), 0.10173096783143488
> [TOTAL_GCs], Count, 89
> [TOTAL_GC_TIME], Time(ms), 228
> [TOTAL_GC_TIME_%], Time(%), 0.35143425250859317
> [CLEANUP], Operations, 100
> [CLEANUP], AverageLatency(us), 359.8
> [CLEANUP], MinLatency(us), 0
> [CLEANUP], MaxLatency(us), 35775
> [CLEANUP], 95thPercentileLatency(us), 6
> [CLEANUP], 99thPercentileLatency(us), 11
> [INSERT], Operations, 3000000
> [INSERT], AverageLatency(us), 2089.05358  -----------------> 2 MilliSeconds
> Latency
> [INSERT], MinLatency(us), 328
> [INSERT], MaxLatency(us), 64927
> [INSERT], 95thPercentileLatency(us), 3969
> [INSERT], 99thPercentileLatency(us), 6835
>
> As you can see from the benchmark results that:
> Expected OPS: 75k OPS
> Actual OPS result:  only 46k OPS
>
> During this run, i have captured the system resource details as shown
> below:
> CPU (Ignite / YCSB )              :  40% / 35%
> Mem(Ignite / YCSB )              :  6.5 GB / 1.1 GB
> Network(Ignite/YCSB in Mbps):  700rx-350tx / 30rx-500tx
>
> My question is:
> 1. There is no system resource limit hit in both ignite and ycsb, So why is
> that the actual result is not going above 46k OPS ? what is stopping here?
> I
> even tried increasing threads in ycsb but not getting any improvement even
> with that.
>
> 2. On ignite machine, in the top command i can see below ignite app showing
> > 100%:
> ==CPU%   MEM%  VIRT  RES     PID     USER          TIME+ THR  NI S  R/s
> W/s
> Command
> ==141.8    37.1    16.6G 5.76G 19099    root          10:39 86    0 S    0
> 0
> /usr/bin/java -Xms1g -Xmx1g
>
> But the overall cpu display(not individual process cpu as shown above) at
> the top command was never crossed 50% (Load factor is 2 during this time).
> Since its not crossed 50% i assume CPU still has juice to take more ignite
> ops. Is this correct?
>
> 3. Is the latency displayed in ycsb output above(2 millisecond) be still
> optimized? Again network/cpu is not exhausted. So it should be possible? Is
> there a ignite-latency measurement tool (similar to redis?) available?
>
> 4. Any other parameters in the system is blocking to this limit? like tcp
> open connections/tcp buffer size etc) ?
>
> Any help highly appreciated.
> Please clarify.
>
> Thanks
> summa
>
>
>
> --
> Sent from: http://apache-ignite-users.70518.x6.nabble.com/
>