VMware Cloud Community
donestes
Contributor
Contributor
Jump to solution

Best Practice Recommendations on 64-Bit Vs. 32-Bit

I am configuring a data center for a client and this is my first time working with 64-bit hardware. We're looking at the Dell 1955 blades, 2xQuad Intel 2.66 GHz, 16 GB, probably 11 blades in all. 6 will be Citrix (don't ask), and 1 Oracle, so 64 bit no VM seems the way to go for those.

The other 4 will be miscellaneous production and development, and I want to use VM there. But now I am on thin ice. Do I recommend X64 for host and X64 for guests? Intuitively it seems that if I stay all 64 Bit I should be OK, but then there's reality looming....

What is the safest way to go in this new realm?

Thanks!

0 Kudos
1 Solution

Accepted Solutions
dpomeroy
Champion
Champion
Jump to solution

OK, is this the consensus: run 64-bit host and 32-bit

guests, except where necessary to run 64-bit guests

for whatever reason?

BTW, the Citrix rep says they have 64-bit binaries,

but ....

Yes.

View solution in original post

0 Kudos
26 Replies
dpomeroy
Champion
Champion
Jump to solution

Assuming you have the correct hardware you can run 32 and 64 bit OS VMs on ESX. There is no performance problem with running 32 bit OS VMs on ESX on 64 bit hardware, if that is what you are asking.

oreeh
Immortal
Immortal
Jump to solution

My opinion regarding 64bit guests:

Only use them when absolutely necessary (i.e. Exchange 2007).

The reason behind this is, that most (Windows) servers (regardless of being physical or virtual) don't really benefit from 64bit (the same with SMP).

If you really need 64bit the chances are that these systems aren't good candidates for virtualization.

With *nix like OS this is different!

Just my 0.02€

0 Kudos
kix1979
Immortal
Immortal
Jump to solution

64 VMs require a significantly larger amount of memory for overhead. You will not get as many VMs per host running 64-bit vs. 32-bit based on memory overhead.

Thomas H. Bryant III
donestes
Contributor
Contributor
Jump to solution

I don't have a requirement to run 64-bit. I am considering running the Oracle server and Citrix servers 64-bit, but they would all be native, no VM. The only implication here is that if I have a development VM for Oracle and Citrix, the OS in those VMs would need to be 64-bit to match production.

It sounds like you folks would recommend running a 32-bit host and 32-bit guests. Is that right? Or 64-bit host and 32-bit guests?

I'm also interested in minimizing hassles from 32/64 bit conflicts. If running all 32-bit is less likely to create a hassle, then I can go with it easily enough.

BTW, I'm planning on 16 GB memory except on the development server where I expect to have a lot of VM instances. There I am mulling over perhaps going to 32 GB (max).

Thank you. This is really very help.

0 Kudos
oreeh
Immortal
Immortal
Jump to solution

It sounds like you folks would recommend running a 32-bit host and 32-bit guests. Is that right? Or 64-bit host and 32-bit guests?

not really

ESX itself is 32bit but can run 64bit guests (if the hardware allows it)

You won't run into problems mixing 32bit and 64bit VMs.

Message was edited by:

oreeh

I'm pretty sure that Citrix isn't 64bit capable (or am I missing something).

0 Kudos
donestes
Contributor
Contributor
Jump to solution

OK, is this the consensus: run 64-bit host and 32-bit guests, except where necessary to run 64-bit guests for whatever reason?

BTW, the Citrix rep says they have 64-bit binaries, but ....

0 Kudos
oreeh
Immortal
Immortal
Jump to solution

OK, is this the consensus

no - the host is 32bit, the hardware 64bit and the guests are 32bit and 64bit

BTW, the Citrix rep says they have 64-bit binaries, but ....

What's the benefit running a 64bit OS (Windows Server), 64bit Citrix binaries and 32bit apps (Word, Excel,...) on top of that?

As I said before - you (normally) don't have any benefit from running 64bit Windows VMs since almost all apps on top of it are still 32bit.

This definitely will change in the future - but no one knows exactly when.

Message was edited by:

oreeh

Running 32bit apps on 64bit (windows) hosts is a performance drawback, since "system calls" have to be translated.

0 Kudos
dpomeroy
Champion
Champion
Jump to solution

OK, is this the consensus: run 64-bit host and 32-bit

guests, except where necessary to run 64-bit guests

for whatever reason?

BTW, the Citrix rep says they have 64-bit binaries,

but ....

Yes.

0 Kudos
nolent
Enthusiast
Enthusiast
Jump to solution

It can be done without issue, but there are some design things you need to consider. It is my opinion that if you have the need to run a server in 64 bit, you need NOT run it in ESX environment. The only real tangible bennefit of 64 bit is your memory scales ALOT better and you can throw more memory at a server than win32. If you need to dedicate ALOT (>8 gigs) of memory to a specific server, I feel you would be better served putting it on real hardware. The only bennefit you get of virtualizing such a resource hog is portability and the ability to do a vmotion type of thing in case of hardware failure. And for database servers, moving databases from one server to another is a trivial task just to set up a new server if you have decent backups and a spare piece of hardware. I see people running Citrix, exchange and oracle on ESX and just scratch my head because you really are limiting your performance potential.

0 Kudos
donestes
Contributor
Contributor
Jump to solution

We're looking to deploy 10 blades, 7 native (Citrix and Oracle) and 3 with ESX. Oracle (or our sales rep at least) doesn't recognize VMWare CPU allocations as staying within a licensed configuration limit, so we've ended up with 2 smaller servers (1 virtualized for development and pre-production) rather than one big one for Oracle. The other two are production with miscellaneous VMs and development. Virtualizing these would make sense regardless.

Oh yes, all are 16GB except the miscellaneous server which is 32GB because we could have a lot of VMs active at the same time.

Since they are all 64-bit CPUs why NOT run 64-bit OS? You seem to be saying that the difference is not measurable, which I have to consider. When IBM mainframes went from 32-bit to 64-bit OS, there was a significant performance boost, if for no other reason than they cut out a lot of dual routines, but mainframes don't extrapolate well to Intel, I grant you. Still, if it makes sense for some, why not have all 10 on the same native OS?

The recommendation given above for 32-bit guests caught me by surprise, but if that's what experience shows, then I have to be pragmatic.

0 Kudos
oreeh
Immortal
Immortal
Jump to solution

With Windows 64bit OS only makes sense when your apps on top of them are also 64bit - otherwise it could be easily a performance drawback due to the 32bit - 64bit emulation code inside the kernel and interfaces.

If your apps (Oracle for example) are 64bit - fine.

64bit Citrix sounds nice - but be aware that the main apps on top of your Citrix VMs is not Citrix itself but the 32bit applications Citrix presents to your users.

My guess is, that the Citrix VMs are really 95% 32bit.

Another thing: go search google for problems running 32bit apps on top of XP Pro64 (or worse Vista 64) - there are plenty of them.

Message was edited by:

oreeh

0 Kudos
donestes
Contributor
Contributor
Jump to solution

Unless I am mis-reading, there is a difference of opinion betwen oreeh and dpomeroy regarding the best host OS, or it is only that it doesn't matter much one way or the other?

It looks like I'm going to end up with this:

7 servers, native 64-bit, no VM

1 server with 2 virtual instances of 64-bit Oracle, native 64-bit/guest 64-bit

2 servers with several virtual machines, all but 1 of which is 32-bit

It's the last two that are my residual question. Should I run these host 32/guest 32 + 1 64 for a slight edge in performance, or 64/host for consistency?

0 Kudos
oreeh
Immortal
Immortal
Jump to solution

Your host is always 32bit when using ESX \!!!

I assume that dpomeroy overread the 64bit host in your previous post.

Other than that I totally agree with dpomeroy.

0 Kudos
mreferre
Champion
Champion
Jump to solution

>With Windows 64bit OS only makes sense when your apps on top of

>them are also 64bit - otherwise it could be easily a performance

>drawback due to the 32bit - 64bit emulation code inside the kernel and

>interfaces.

I must disagree with this. For the records there is no "emulation" going from 64-bit to 32-bit. You just don't use the 64-bit extensions. Your code runs at native speed and in fact it might even run faster due to the fact that a 32-bit application on 64-bit OS'es will have access to the full 4GB address space whereas on 32-bit OS'es they have access to only either 2GB or 3GB (if you use the /3GB switch in the boot.ini file).

This is NOT like running a 32-bit x86 appl on a 64-bit Itanium box (where you do have this "emulation" that hurts big).

Massimo.

Massimo Re Ferre' VMware vCloud Architect twitter.com/mreferre www.it20.info
0 Kudos
oreeh
Immortal
Immortal
Jump to solution

AFAIK there are some kernel interface / WIN32 function calls that have to be translated when called with 32bit parameters - which IS a performance drawback

Regarding memory you are right

0 Kudos
mreferre
Champion
Champion
Jump to solution

Well I can't for sure get into that level of details (as I think just a bunch of people in Redmond that wrote these stuff knows how they implemented them Smiley Happy ).

I don't have this much experience comparing 32-bit applications running on 32 and 64 bit hosts but the general understanding is that there is NO performance drawback (in fact there might be an advantage as I stated above). There is though a limitation running 32-bit code on a 64-bit host that all device drivers that are to be installed needs to be 64-bit (hence the reason for which we couldn't run 32-bit exchange on a 64-bit host due to the 32-bit filter driver(s) it installs).

My two cents.

Massimo.

Massimo Re Ferre' VMware vCloud Architect twitter.com/mreferre www.it20.info
0 Kudos
oreeh
Immortal
Immortal
Jump to solution

as I think just a bunch of people in Redmond that wrote these stuff knows how they implemented them

I hope they know it Smiley Wink

0 Kudos
mreferre
Champion
Champion
Jump to solution

I hope they know it

One should always hope for the best .....

Massimo.

Massimo Re Ferre' VMware vCloud Architect twitter.com/mreferre www.it20.info
0 Kudos
donestes
Contributor
Contributor
Jump to solution

There is though a limitation running

32-bit code on a 64-bit host that all device drivers

that are to be installed needs to be 64-bit

Am I reading this correctly? If running 64-bit host, we have to install 64-bit drivers in the 32-bit guest OS's? VMWare doesn't intercept the I/O's and reroute to its own 64-bit drivers?

0 Kudos