If your operating system is showing the wrong RAM allocation via the free –m or top command please be assured that you really do have the correct amount of RAM allocated to your VPS it is simply the reporting that is wrong, this is due to us using the latest Xen 4.x.x Versions for performance enhancements which unfortunately can cause this anomaly, more so on 32bit OS templates than others.
Also please keep in mind that more modern kernels do not present some of the kernel reserved memory to the OS.
You can verify you have the correct memory information with the following command:
‘cat /proc/meminfo’
This will produce something that looks like this:
MemTotal: 507764 kB
MemFree: 379360 kB
Buffers: 5428 kB
Cached: 101568 kB
SwapCached: 0 kB
Active: 11956 kB
Inactive: 98916 kB
Active(anon): 3912 kB
Inactive(anon): 28 kB
Active(file): 8044 kB
Inactive(file): 98888 kB
Unevictable: 0 kB
Mlocked: 0 kB
SwapTotal: 524280 kB
SwapFree: 524280 kB
Dirty: 140 kB
Writeback: 0 kB
AnonPages: 3900 kB
Mapped: 3964 kB
Shmem: 40 kB
Slab: 10764 kB
SReclaimable: 7076 kB
SUnreclaim: 3688 kB
KernelStack: 608 kB
PageTables: 884 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
WritebackTmp: 0 kB
CommitLimit: 778160 kB
Committed_AS: 35140 kB
VmallocTotal: 34359738367 kB
VmallocUsed: 2212 kB
VmallocChunk: 34359735936 kB
HardwareCorrupted: 0 kB
HugePages_Total: 0
HugePages_Free: 0
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 2048 kB
DirectMap4k: 524288 kB
DirectMap2M: 0 kB
At the bottom you will see ‘DirectMap4k’ this is the actual amount of RAM your VPS has allocated and can use.
Using the above example, take ‘DirectMap4k: 524288 kB’ divide the 524288 kB by 1024 to convert it to megabytes and you get 512, yet the old free –m command takes its info from the MemTotal line near the top which is not actually what you system is able to use.