Hello Nan, Why don't you check Geode statistics
http://geode.apache.org/docs/guide/11/reference/statistics/statistics_list.html Maybe, disk I/O or some other causes could be involved... -- Akihiro Kitada | Staff Customer Engineer | +81 80 3716 3736 Support.Pivotal.io <http://support.pivotal.io/> | Mon-Fri 9:00am to 5:30pm JST | 1-877-477-2269 [image: support] <https://support.pivotal.io/> [image: twitter] <https://twitter.com/pivotal> [image: linkedin] <https://www.linkedin.com/company/3048967> [image: facebook] <https://www.facebook.com/pivotalsoftware> [image: google plus] <https://plus.google.com/+Pivotal> [image: youtube] <https://www.youtube.com/playlist?list=PLAdzTan_eSPScpj2J50ErtzR9ANSzv3kl> 2017-06-09 6:09 GMT+09:00 Xu, Nan <[email protected]>: > 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. >
