Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I am supposed to have 512MB of ram on my VM, however I see 495mb of total ram when I do free command.

I would like to know if in case my system really had "precisely" 512MB of physical ram, if in free I would see 512MB as well, or if kernel takes some ram and reserves it for itself, therefore it looks like the system has less actual memory.

I am aware that if my memory was over ~3.5 GB I would need to use PAE on 32bit kernel, but this is not the case.

The reason why I am asking is that I am paying for this VM to have 512MB and even if 17MB of ram doesn't seem to be much, I would like to get what I pay for... (it shouldn't be problem to increase ram of virtual machine by 17mb even if it require reboot).

share|improve this question
up vote 3 down vote accepted

The total memory as listed by free does not include memory mapped by hardware devices (the video card often maps a good chunk for its display buffers) nor memory used by the kernel itself.

(“The buffers used by the kernel” in the free man page refers to buffers containing user data, not to the kernel code nor to the kernel's internal data.)

If you have 512MB of RAM, it's not surprising to see 495MB available for user data. In fact, on a physical machine, I'd expect to see more than 17MB used by the video card plus the kernel. Your host is giving you what you paid for.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.