Yes you can give the JVM more memory if you are only using 1GB out of the 3 GB on your server. I would set the max heap size (in cf administrator) to 1024mb (1gb) instead of 200mb. If you are running 64 bit then you can go above 1gb, but if you are running 32 bit you can't get the max heap. You might consider setting the min heap size equivalent to or just below the max heap size, so you aren't wasting resources shrinking or growing the heap at runtime. It's also worth noting that the slowness you are experiencing under load may not have anything to do with the heap size. The problem could be on the DB side of things, or elsewhere.
Just to add to Pete’s note, I didn’t see anything in s.filipowicz’s note that said he was running 32-bit, so let’s clarify to readers that Pete’s first 2 sentences refer to that specifically. (His third sentence implies it, but I just want to be clear.)
Also, s.filipowicz, you say you got “outofmemory” errors, but you don’t say what kind. There is a big difference between an OOM error that then says it’s related to “heap space”, versus one that says it’s related to “permgen”, or “out of swap space”, or “unable to create new native thread”. The latter three may well mean that you need to lower the heap, believe it or not.
Sometimes, the higher the heap the greater the contention with other things that leads especially to the “out of swap” or “new native thread” error. The “permgen” error generally means you need to increase the maxpermsize, but that’s not always clear—sometimes you need to fix the problem that’s stressing the permgen.
And indeed, you say that lowering the heap max made the errors go away, but performance got bad. One may suspect that you were then having something other than an “OOM heap space” error, and that lowering the heap made that go away. But then it could just be that whatever caused that error then is not happening since you restarted—and it may come back, so you may well still need to increase the heap.
Sadly, this subject is a lot more complex than you will generally find discussed on most blogs and even many Java resources. I started to address it as a blog entry here:
CF911: Lies, damned lies, and when memory problems not be at all what they seem, Part 1
While I never have finished the additional parts of a series I had anticipated, the introductory info there (fairly substantial) may still be of value.
Anyway, as a starting point, the key is to note which kind of OOM error you are getting when CF crashes, which as you may have found are discussed in the logs in the \runtime\logs\ dir (or \logs\), not the \logs viewable in the CF admin. Let us know what you find.
From the JVM usage listed Heap maximum is 200Mb with 160Mb used only leaving 30Mb free. It is conceivable that 30Mb can be utilised or committed with objects quite easily.
JVM - Free Memory 31.2 MB
JVM - Max Memory 194 MB
JVM - Total Memory 194 MB
JVM - Used Memory 163 MB
Does not look like PermGen (-XX:MaxPermSize=192m) is being stressed:
PS Perm Gen - Used 64.2 MB
Having said that, setting an initial value to PermGen can benefit JVM performance eg -XX:PermSize=96m (the value could differ give more samples of JVM usage over time)
Ditto to other posters I also expect you can benefit by having a bigger maximum heap defined. While changing heap settings it can be a good idea to set a minimum setting.
CFadmin > Server Settings > Java and JVM
Minimum JVM Heap Size (MB) 512 Maximum JVM Heap Size (MB) 1024