Hi,
I am trying to see the limit of geode performance.
Here is what I did.
Single machine: OS: centos 7. 8 core. 2.6G.
Create a single locator and a single server and a single region.
Only configuration is
Server conserve-sockets= false
Region is PARTITION
Client and server running on the same machine.
In my client. I setup a 16 thread pool to get data. But I can only push the
cpu to around 90—93% on the centos.
Why I cannot push it to 100%? I am suspecting
1. The tcp connection between the server and client is not fast enough.
Maybe increase the number of tcp connection? I only see one connection between
client and server.
2. There are some lock at the server? I realize that I can push the cpu
from 50% to 90 by just adding the setPoolThreadLocalConnections(true), so maybe
there are some other setting I am missing.
Thanks,
Nan
Client side program.
val cache: ClientCache = new ClientCacheFactory().addPoolLocator(host, 10334)
.set("log-level", "info")
.set("conserve-sockets", "false")
.setPoolMinConnections(4)
.setPoolMaxConnections(12)
.setPoolThreadLocalConnections(true)
.create
val regionFactory: ClientRegionFactory[String, String] =
cache.createClientRegionFactory(ClientRegionShortcut.PROXY)
val region1: Region[String, String] = regionFactory.create(region)
implicit val ec =
ExecutionContext.fromExecutorService(Executors.newFixedThreadPool(16))
var j = new AtomicLong(0)
for (i <- 1 to 16) yield Future {
while(true){
val cj = j.addAndGet(1)
region1.get("" + (rnd.nextInt(2000) + 1))
}
}
----------------------------------------------------------------------
This message, and any attachments, is for the intended recipient(s) only, may
contain information that is privileged, confidential and/or proprietary and
subject to important terms and conditions available at
http://www.bankofamerica.com/emaildisclaimer. If you are not the intended
recipient, please delete this message.