I just did a test and I notice that I can allocate more VM memory than what my physical host has.
ESXi 5.0 host:
I can change my VM to 16GB of memory and it doesn't complain.
If my ESXi 5.0 host has 8GB of memory and I'm planning to run 1 VM on it, can I give the vm 8GB of memory or do I have to give it something less than 8GB like 7GB because of esxi memory overhead?
You'll want to allocate the VM less memory than the physical limit to ensure good performance. While you can over allocate memory on ESXi, in this case you'd likely end up with poor performance. Lets say you have a 32 GB host running 20 VMs with 2 GB each. ESXi can use a number of memory reclamation techniques to ensure that your VMS perform well. That includes TPS (sharing memory between VMs), memory compression, ballooning within the VM (i.e. causing the VM to swap memory disk) and swaping memory to disk.
In the case of a single VM on a host with 8 GB, as soon as the VM is using 6+ GB, ESXi is going to have to likely rely on swapping memory to disk which will impact performance negatively.
So if I have
8GB memory: I can allocate up to 6GB for VMs and 2GB for esxi host without memory swapping to disk?
32GB memory: I can allocate up to 30GB for VMs and 2GB for esxi host without memory swapping to disk?
96GB memory: I can allocate up to 94GB for VMs and 2GB for esxi host without memory swapping to disk?
Is 2GB of memory the maximum that the esxi 5.0 host will use or does it change as I have more physical host memory?
2 GB is mimimum memory which is required for installing ESXi 5.0 host.
Suggest to go through the memory management guide
2 GB is the minimum required just to install ESXi. In the case of a 96 GB host, the RAM allocated to VMs will depend on many factors. If you're running a high number of VMs with the same OS, transparent paging may allow you to allocate more than 96 GB of memory to the VMs. Looking at one of my testing servers right now, I have 17 VMs running allocated 27 GB on a host with 20 GB of physical memory. About 1.25 GB of memory has been reclaimed through ballooning, 1.5 via TPS, and 0.25 GB is swapped.
What about CPU requirements?
If esxi 5.0 hosts has 4 logical CPUs total, and I'm planning to only have one VM on the esxi host, can I assign the VM 4 logical CPUs or do I need to reserve some CPU for esxi host?
In case when you are planning to only power on one VM on the host then you can allocate the complete capacity of the host.You don't have to reserve anything for Host , CPU shceduler will take care of this demand.