Ever since we upgraded from Proxmox 1.8 to version 1.9 we have had users who have periodically complained about receiving out of memory errors when attempting to start or restart their java apps.
The following two threads contain a little bit more information about the problems people are seeing:
At least one of the threads suggest you allocate a minimum of 2 cpu’s per VM in order to remedy the issue. We already have 2 cpu’s per VM, so that was not a possible workaround for us.
Another suggestion made by one of the posters was to revert back to using a previous version of the kernel, or downgrade Proxmox 1.9 to Proxmox 1.8 altogether.
I decided I would try to figure out a work around that did not involving downgrading software versions.
At first I tried to allocate additional memory to the VM’s and that seemed to resolve the issue for a short period of time, however after several days I once again started to hear about out of memory errors with Java.
After checking ‘/proc/user_beancounters’ on several of the VM’s, I noticed that the failcnt numbers on the ‘privvmpages’ parameter was increasing steadily over time.
The solution so far for us has been to increase the ‘privvmpages’ parameter (in my case I simply doubled it) to such a level that these errors are no longer incrementing the ‘failcnt’ counter.
If you would like to learn more about the various UBC parameters that can be modified inside openvz you can check out this link.