VMware Cloud Community
Edu201110141
Contributor
Contributor

ESXi 4.1 with 4 GB of RAM only allows 2 GB allocation

Hello,

Here's the problem:

One ESXi 4.1 update 1 server with 4 GB RAM and 2 CPUs (Dell optiplex 960)

It only allows me to create resource pools with 2 GB of RAM.

And even if I don't create a resource pool, and leave the VMs directly in the server, I can only power on VMs that togheter use 2 GB.

I'm using vCenter, but the problem persists if i connect directly to the ESXi server.

Any thoughs?

Thanks!

Tags (3)
0 Kudos
7 Replies
weinstein5
Immortal
Immortal

Welcome to the Communities -   

In regards to the resource pools - you ESX host will use come of the pysical RAM and what ever is left will be available for the use in resource pools -

In regards to the VMs - you should be able to oversommit memory so something else is going on - when you created your VMs did you set memory reservations? If you did the amount of memory reservations of powere don VMs must be less than or equal to available memory as is for resource pools -

if you find this or any other answer useful please consider awarding points -

If you find this or any other answer useful please consider awarding points by marking the answer correct or helpful
0 Kudos
a_p_
Leadership
Leadership

The ESXi hosts and the vCenter Server Agent which runs on it when running in a vCenter Server environment also need some RAM. This might be the "missing" RAM you are looking for. Please take a look at http://vm-help.com/esx40i/memory_allocation.php. What do you see in the "Configuration" and "Resource Allocation" tabs?

André

Edu201110141
Contributor
Contributor

Hi,

The configuration -> Memory page shows:

Physical

Total: 3965.4 MB

System: 418.4 MB

Virtual Machines: 3547.0 MB

The Resource allocation page shows:

Memory

Total Capacity: 2172 MB

Reserved Capacity: 0

Available Capacity: 2172 MB

All VMs are powered off

---------------------------------------

Lowering the reserved memory amount of the vmvisor module as suggested in that article just gaves me an extra 256 MB but it doesn't let me access the 1.5 GB I should be able to allocate

0 Kudos
Edu201110141
Contributor
Contributor

Well, apparently VmWare temporaly uses an extra amount of memory in order to power on a VM. (the vmvisor module I think)

So I've just powered them on in groups of 4 and now all are on at the same time.

Not sure what made it work, but here's what I did.

1) Followed the article http://vm-help.com/esx40i/memory_allocation.php and reduced the ammount of reserved memory used to power on VMs from 512 to 256.

2) Removed from all the VMs the memory reservation (set it to 0), but I kept the Memory limit.

3) Ignored the memory listed in the "Resource allocation" page and powered them on in groups of 4.

Now, there're 24 XP machines powered on.

Each one has assigned 128 MB of RAM (not reserved), and it's limited to 130.

According to the perfmon/task manager of each XP machine, it's normal memory usage is 120 MB

So with all XPs powered on, it currently has a RAM usage of 2880 MB

So, the ESX is currently using 2880 MB for VMs + 418 MB for the System which gives 3298 MB

In case all VMs reach they're RAM limitation, it will be 3120 + 418 = 3538 MB

Which leaves 427 MB of RAM for ESX Tasks, like the 256 MB now needed to power on machines, snapshots, etc.

Thanks!

0 Kudos
weinstein5
Immortal
Immortal

Some things to point out -     

  • If when creating the VM you set the memory to 128 MB then the VM will only have access to 128 MB no matter what you set the limit to - 
  • Just because the VMs perfmon says it is using 120 MB does not necessarily mean that the host will be using 120x24 MB of memory because of something Transparent Page Sharing - this allows the ESX to store identical memory pages one time allowing it to save up to 20%-30% of memory in use -
  • When you set a VM with a memory reservation it will not be able to start unless the ESX can gaurantee the memory to to the VM - for example if you set the memory reservation to 256 MB and only had 2 GB free you would only be able to able to power on 8 VMs -
If you find this or any other answer useful please consider awarding points by marking the answer correct or helpful
0 Kudos
Edu201110141
Contributor
Contributor

Hi,

I though if you set the limit to unlimited it will assign more ram if needed by the VM and available in the ESX server, but now you point it out, The guest OS will only see the ammount assigned in the hardware tab.

So, if I have 4 GB - the 512 used by ESXi

When I was using memory reservation (24 VMs x 128 MBs = 3072 MB), why I was unable to power all them on?

And why was I unable to create a Resource Pool with more than 2GB when there was no memory reservation or VM running?

0 Kudos
Edu201110141
Contributor
Contributor

Any ideas?

The question remains, why can't I create a resource pool with a memory limit higher than 2 GB RAM when there's no VM powered on or memory reservation in any VM and the ESX host has 4 GB of RAM?

0 Kudos