Hi there Suhas,

There is no real recommendation on heap vs CPU cores. It really boils down to WHAT you do and how much you willing to put into it. i.e Processing intense tasks will perform better on many cores, whereas the same setup is complete overkill for lower processing intense systems.

The approach that I have with LARGE RAM sizes, is not the amount of cache servers you can squeeze onto 1 physical server, but rather the amount of data I would have to recover upon failure of that physical server.

If you assume that you plan your memory usage as follows:

 * 20% heap for processing
 * 80% heap for storage

you need to make sure your remaining cluster can deal with 80G (assuming n+1 redundancy) upon recover. This of course does not change if you have 1 cacheserver vs 5.

IMO, the differences between 1 single large cacheserver vs multiple smaller cacheservers would be:

 * amount of nodes data needs to be replicated to when using replicate
   regions
 * Membership monitoring
 * external factors influencing performance. i.e if you run multiple
   smaller cacheservers on the same physical hardware, 1 "rogue" server
   might consume all the resources(CPU,disk & network I/O) so that the
   other cacheservers are starved.
 * In a physical node failure scenario, there is less "panic" in the
   cluster if a single cacheserver goes offline. But if you suddenly
   loose 5, that is a different story.
 * With 5 servers you want to make sure that you don't have replicates
   of the primary data on the same physical machine. So now you need to
   set redundancy zones, to avoid that scenario.

The misconception of 5 servers processing data faster than 1 single server is incorrect. The defaut threads in a cacheserver becomes a limiting factor. BUT tuning those parameters can even out the 5 vs 1 factor.

Larger heaps *might* have longer GC pauses.... but that of course can be controlled. Of course full "end of the world" GC's are to be avoided at all costs... even with smaller JVMs.

So, I guess the right answer here is ... try it out.. there is no singular correct answer to this. Each has benefits and drawbacks...

--Udo


On 12/14/16 10:14, Suhas Gogate wrote:

Hi, I am looking for recommendation for amount of heap single Geode member server can handle reasonably well and how many CPU cores would it need (assuming the clients are local to member server i.e. network is not a bottle neck), or in other words, In a typical production deployment is there a recommendation on how much heap single Geode server should manage and with how many cores?

Also, as we have more and more RAM w/ today’s enterprise grade servers e.g. 128G, 256G, so is it better to run multiple Geode Servers on such machines w/ smaller heap allocations or one server w/ large heap size? I understand Geode provides a way to distribute replicas across physical machines so multiple servers per single machine should not be a problem in this regards. Although bigger heap possibly could mean bigger GC pauses?

Appreciate your insight?

Thanks & Regards, Suhas


Reply via email to