07-31-2018 04:32 AM
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 ???
Solved! Go to Solution.
07-31-2018 06:39 AM
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...
07-31-2018 05:12 AM
07-31-2018 05:22 AM
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
07-31-2018 06:09 AM
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 see
07-31-2018 06:39 AM
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...
07-31-2018 06:49 AM
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
Discover and save your favorite ideas. Come back to expert answers, step-by-step guides, recent topics, and more.
New here? Get started with these tips. How to use Community New member guide