Recently I got a VPS server and I'm running Coldfusion, the website was running fine until it got more and more traffic and I started to encounter 'OutOfMemory' exceptions.
I thought simply to rise the memory of the VPS server, but this didn't help.
After doing some Google searches I found a setting in de CF Admin settings to set the JVM Heap memory. It was on the standard: Max Heap size 512MB and Min Heap size was empty. After playing around a bit I have now set it to Min 50MB and Max 200MB, good things is that I'm not getting the 'OutOfMemory' exceptions anymore. So far so good!
But with about 50 active visitors on the website, the website starts to get slow. The CPU usage is only about 8% (Windows Taskmanager), also the taskmanager show only about 30% of the 3GB RAM in use.
So I'm thinking that my values could be tweaked to use more of the RAM. Honestly I don't understand these JVM Memory heap settings, so I have no clue what is a good setting for me.
I found a CF script that displays the memory usage, the details are:
HeapMemoryUsage-Committed 194 MB
HeapMemoryUsage-Initial 50.0 MB
HeapMemoryUsage-Max 194 MB
HeapMemoryUsage-Used 163 MB
JVM -FreeMemory 31.2 MB
JVM -MaxMemory 194 MB
JVM -TotalMemory 194 MB
JVM -UsedMemory 163 MB
MemoryPool-CodeCache-Used 13.0 MB
MemoryPool- PS EdenSpace-Used 6.75 MB
MemoryPool- PS OldGen-Used 155 MB
MemoryPool- PS PermGen-Used 64.2 MB
MemoryPool- PS SurvivorSpace-Used 1.07 MB
Non-HeapMemoryUsage-Committed 77.4 MB
Non-HeapMemoryUsage-Initial 18.3 MB
Non-HeapMemoryUsage-Max 240 MB
Non-HeapMemoryUsage-Used 77.2 MB
FreeAllocatedMemory:30mb
TotalMemoryAllocated:194mb
MaxMemoryAvailable to JVM:194mb
% of FreeAllocatedMemory:16%
% of AvailableMemoryAllocated:100%
My JVM arguments are:
-server -Dsun.io.useCanonCaches=false-XX:MaxPermSize=192m-XX:+UseParallelGC- Dcoldfusion.rootDir={application.home}/../-Dcoldfusion.libPath={application.home}/../lib
Can I give the JVM more memory? If so, what settings should I use?
Thanks very much!!