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