Hi Nan, 93% seems like pretty good CPU utilization. I can't speculate as to exactly what the rest of it is being used for, and I don't know exactly how performance metrics are gathered, but you won't generally get 100% for reasons I don't understand that well either. I would speculate that factors could be OS usage, timeslices, I/O, interrupts, the way stats are gathered and the time that is used gathering stats themselves, locking... but I don't know. I think throughput numbers are probably more meaningful than CPU percentage usage.
Best, Galen On Thu, Jun 8, 2017 at 5:13 PM, Akihiro Kitada <[email protected]> wrote: > 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 > <+81%2080-3716-3736> > Support.Pivotal.io <http://support.pivotal.io/> | Mon-Fri 9:00am to > 5:30pm JST | 1-877-477-2269 <(877)%20477-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.fromExecutorS >> ervice(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. >> > >
