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.

Reply via email to