>> 1) If I configured the memory for the server group, Is it allocated for individual nodes(Hope I think as it is) ? - For this configuration, the server should allocate 40 GB ?
>> 2) What is the meaning in allocating permgen memory, Is it reserved at node boot time(hope it is not), why?
10gb of heap will be allocated to each individual servers which are configured to use this server group, in case you've not defined any jvm configuration in the host.xml file. The complete java process size for each server will be more than 10gb(max heap size). It'll be the sum of heap space, perm gen,(# of threads * threadstacksize), and jvm overhead and the space that you define for permgen will be part of permgen memory.
Thanks for your response, Now am clear about question 1. Regarding question 2, my doubt is "If I specify the permgen of 1024 MB, is it going to reduce the memory of(VM/Physical machine) at JBoss start time or when the threads/application needs the memory ?"
The memory usage is HEAP+PermGen+Thread*ThreadStackSize.
If you configure min=max the Heap and PermGen allocate the memory on startup. The ThreadStack is allocated on demand.
Remember that PermGen is replaced by MetaSpace in JDK8+
As the PermGen is very static you should measure what your application normally use and set this (plus a bit space).
Also check the balance between young and old generation of Heap (if you don't use G1), as here a huge YoungGen is often not needed.
In general you should avoid to allocate all memory by Java processes, you should keep at least 2GB for the OS. e.g. Linux will use DiscSwapSpace if exhausted and this will make your system and applications very slow
Got the answer.