-
1. Re: Performance issue
nadirx Sep 11, 2014 4:21 AM (in response to mvpratap)Your test is single-threaded, so make sure you use multiple threads on multiple nodes.
Also use the IGNORE_RETURN_VALUE flag when doing puts if you don't need to retrieve the existing value.
You may want to use radargun [1] to test Infinispan on your hardware
-
2. Re: Performance issue
mvpratap Sep 11, 2014 5:19 AM (in response to nadirx)Thanks for reply,
Is this possible with cluster of 5 nodes with normal machines.
10,00,000 put 20,00,000 get 10,00,000 update operations per second.. objects of size varying between 1 to 30kb.
can u share some benchmark(performance) results with GC,CPU,Transactions per second.. tested in distributed mode
Thanks
-
3. Re: Performance issue
rvansa Sep 11, 2014 7:04 AM (in response to mvpratap)Hi,
even if you use the commas in numbers in a strange fashion (do you want 1M or 10M operations?) there's no way you can get such speeds when using synchronous replication - network latency is too long to achieve that. Regrettably, I don't have much experience with asynchronous replication, but you can't just write a busy loop doing put()s - that would overload the system - you'd need to put certain load and see if the cluster is behaving correctly.
Another parameter is the number of actually concurrent accesses - if the threads were synchronized on one lock, the performance would go down.
Gets are similar, but with replicated mode you can actually achieve millions of operations per second, because the reads wouldn't go through the network.
-
4. Re: Performance issue
prashant.thakur Sep 11, 2014 8:02 AM (in response to rvansa)We are also looking for performance numbers in DIST_SYNC mode puts with Number of Owners as 2 which is the minimum of we require one redundant sync copy ?
Any figures from Infinispan dev team on this mode. At max we are able to achieve is between 10k - 11k with 2 nodes.
Below is our best performance number.
For 2 Nodes with client on separate machine than ones which host the Nodes -
Load 10k records from 40 threads - Time taken for all records to be processed - 39 s
Load Details :
Total Number of Records Processed - 400000
Average Number of Records Processed Per Second - 10256
Average Time Taken For Execution By Each Thread - 38.327374s
Sample configuration is
<namedCache name="DummyCache">
<clustering mode="dist">
<stateTransfer chunkSize="1000" fetchInMemoryState="true" awaitInitialTransfer="true" timeout="3600000"></stateTransfer>
<hash numOwners="2" numSegments="60" capacityFactor="1">
</hash>
</clustering>
<transaction
transactionManagerLookupClass="org.infinispan.transaction.lookup.GenericTransactionManagerLookup"
transactionMode="TRANSACTIONAL"
lockingMode="OPTIMISTIC"/>
<jmxStatistics enabled="false"></jmxStatistics>
<indexing enabled="false" indexLocalOnly="false">
<properties>
</properties>
</indexing>
<modules>
</modules>
<compatibility enabled="true" marshallerClass="com.subex.spark.common.distributedcaching.server.configuration.ExtendedProtoStreamMarshaller"></compatibility>
</namedCache>