Hi Sam,

I guess that the degradation happens because all your server nodes are started 
on a single machine as separate processes. The processes compete for system 
resources (I/O, CPU, RAM), there are more context switches done at the OS 
kernel level and all this leads to the worse performance.

My suggestion is to start server nodes on separate physical machines and 
execute “put”/“get” operations from multiple threads rather from one.

—
Denis

> On Dec 2, 2016, at 4:42 PM, javastuff....@gmail.com wrote:
> 
> Hi,
> 
> We are observing really good performance with single node, however with
> multiple nodes in cluster ,performance is degrading or we can say
> application throughput is not scaling. 
> 
> I wrote a sample program to put 100K <Integer, Integer> data into cache in a
> single thread using put() and later read all of them using get().
> (Application won't get all data from cache, but this gives a ball park idea
> how put and get will behave)
> 
> Below is the time taken on 8 CPU Windows laptop -
> 1 Server  - Put took 5136 ms - Get took 725 ms
> 2 Servers - Put took 19468 ms - Get took 10162 ms
> 3 Servers - Put took 28087 ms - Get took 14481 ms
> 4 Servers - Put took 34948 ms - Get took 16310 ms
> 
> As you can see from 1 Server to 4 Server timing degraded ~7 fold for Put and
> 22 fold for fetch. 
> 
> Is this because of Partitioned cache where each partition getting balanced
> automatically? How can I tune it to get optimal performance?
> 
> Attaching sample program. (To add nodes, use ExampleNodeStartup.java from
> Ignite examples.)
> 
> -Sam
> 
> PutAndGetPerf.java
> <http://apache-ignite-users.70518.x6.nabble.com/file/n9378/PutAndGetPerf.java>
>   
> 
> 
> 
> --
> View this message in context: 
> http://apache-ignite-users.70518.x6.nabble.com/Performance-with-increase-in-node-tp9378.html
> Sent from the Apache Ignite Users mailing list archive at Nabble.com.

Reply via email to