cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
420
Views
5
Helpful
5
Replies
Enthusiast

How JVM Memory is Shared between CallServer and VXMLServer (Combo Deployment)

Details :- Combo Deployment on Same VM (CallServer + VXMLServer)


C:\Cisco\CVP\JRE // JRE Location
C:\Cisco\CVP\VXMLServer\Tomcat\ // VXML Tomcat Location
C:\Cisco\CVP\CallServer\Tomcat\ // CallServer Tomcat Location 

 

 

Registry Path:-

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Apache Software Foundation\Procrun 2.0\CallServer\Parameters\Java]

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Apache Software Foundation\Procrun 2.0\VXMLServer\Parameters\Java]

 

Question :-

Lets Say in my Call Server Registry I pass Xms2g & Xmx2g 

And in my VXML Server Registry I pass Xms4g & Xmx4g


Since both Tomcat instance are using same jvm, would it reserve 6 GB of Heap or 4 Gb of Heap ?
I see single JAVA Process in Windows Task Manager.
I am trying to use Jconsole or JAVA Visual VM, but cannot conclude .
Appreciate any pointers, how can i verify ???

Everyone's tags (2)
1 ACCEPTED SOLUTION

Accepted Solutions
Beginner

Re: How JVM Memory is Shared between CallServer and VXMLServer (Combo Deployment)

jconsole will tell you this on the 'Memory' tab.  It will show  Used: Committed: and Max: at the bottom. 

 

Since your xms and xmx settings are equal, JVM will start-up and commit the entire heap memory to the OS. All this means is that the OS will keep that much reserved for the application but it will not show this much actually used. 

 

Same for jconsole memory.. it will show the entire heap committed but only a portion used. 

 

In terms of your definitions...  "total heap reserved" could be calculated by summing committed memory for all three processes. 

 

In windows, if you open Resource Monitor, Memory tab will have Commit values for tomcat8.exe processes... 

 

 

 

5 REPLIES 5
Highlighted
Beginner

Re: How JVM Memory is Shared between CallServer and VXMLServer (Combo Deployment)

Dear,You Will have 2 tomcat instance actuly they are more but let talk about only call server and VXML both are running in 1 JVM but 2 tomcat instance.  But if you use CVP> 11.5 you can use only 1.4 for call server and 1.4 for CVP becouse your CVP JVM support 32 bit . Let me if you have more clarifications
Beginner

Re: How JVM Memory is Shared between CallServer and VXMLServer (Combo Deployment)

hey jimmy,

 

while they share the same java runtime environment, they do not share the same JVM instance. Two entirely separate tomcat containers are started in separate JVMs. CVP uses Apache's proc run libraries to wrap the tomcat container as a windows service, and therefore in your process tree you'll see something like "Commons Daemon Service Runner"  expand details on that and you'll see one for CallServer and one for VXMLServer.

you can connect jconsole to jmx port 9696 on VXMLServer  and 2098 for CallServer   (check the jmx_*.conf files at C:\Cisco\CVP\conf) 

Your registry parameters will be unique between the processes, so in your example callserver would have 2gig and vxmlserver would have 4gig 

Enthusiast

Re: How JVM Memory is Shared between CallServer and VXMLServer (Combo Deployment)

Thank You for quick response.

I can see three different process.(Call Server, VXML, WSM)

I am able to connect using Jconsole to respective JMX port and see the Memory Utilization.

 

Is there any way we can verify or Log Total Heap reserved by JRE for all JVM Instances ?

I mean at Window's Server Level ?

 

I could seeCVPServices.jpg

 

Beginner

Re: How JVM Memory is Shared between CallServer and VXMLServer (Combo Deployment)

jconsole will tell you this on the 'Memory' tab.  It will show  Used: Committed: and Max: at the bottom. 

 

Since your xms and xmx settings are equal, JVM will start-up and commit the entire heap memory to the OS. All this means is that the OS will keep that much reserved for the application but it will not show this much actually used. 

 

Same for jconsole memory.. it will show the entire heap committed but only a portion used. 

 

In terms of your definitions...  "total heap reserved" could be calculated by summing committed memory for all three processes. 

 

In windows, if you open Resource Monitor, Memory tab will have Commit values for tomcat8.exe processes... 

 

 

 

Enthusiast

Re: How JVM Memory is Shared between CallServer and VXMLServer (Combo Deployment)

I am able to verify in both Jconsole and Resource Monitor.

Appreciate Your quick response !!

We are seeing Young Gen memory filled up and minor GC is triggered very frequently for Call Server.

That's Why i wanted to verify before i do any changes.

Again Thanks a lot for your help Ryan

CreatePlease to create content
Content for Community-Ad
August's Community Spotlight Awards