2

I have some old supermicro servers with over 16GB of ram in them which are still running 32bit version of linux with 2.6.x kernels and vmware on top of it.

I wonder if there is any advantage of upgrading the distro/kernel to a 64-bit Debian.

The only problem is that right now I cannot create 64 bit guest vms in vmware.

I would also like to know that, upgrading this system to 64bit have any performance advantage or maybe the more appropriate question would be that would it have any disadvantage?


Yes indeed it was a VS question and the only reason why I want to have 64 bit guests is btrfs, nothing else. I don't really have database, memcache or other vms which would take advantage of the 64 bit, also none of the VMs have more than 4 gigs of memory. The most I think has is around 2GB.

"32bit only rules in the 4GB or less RAM space" so many of my guests are just fine with being 32bit guests but my host OS which have 24GB ram and runs a 32bit kernel does some PAE tricks to access the memory over the 4GB.

So let me put it this way. If my main goal here is to have faster (or at least not slower) vms, would it be an advantage for the HOST os to be 64 bit? Would it access the memory area faster over 4GB than it does it right now?

sysadmin1138
  • 131,083
  • 18
  • 173
  • 296
DragonAge
  • 39
  • 3
  • Yes. The PAE addressing is quite slow whenever it happens so the host will benefit from being 64bit. Also, seeing as you are already on VMware, you should consider switching to ESXi 5.5 free version _if_ your hardware can run it. You can run VMware ESXi off of a 4G USB stick so it's normally an easy test to see if it actually can run and access your disks. – Ian Macintosh Jul 11 '14 at 10:54
  • On a side-note, having a 64b system requires to have some 32bits libraries for compatibility, and thus uses more disk capacity. – mveroone Jul 11 '14 at 11:39
  • @IanMacintosh Do not run a standalone ESXi host off of a [USB key/SD card](http://serverfault.com/questions/549253/what-happens-when-the-usb-key-or-sd-card-ive-installed-vmware-esxi-on-fails) (*without shared storage*). It's bad advice. – ewwhite Jul 11 '14 at 12:06
  • @ewwhite - to test to see if it actually can run and access your disks (if your hardware is old and doesn't appear on the supported HW list). This leaves your existing system and data intact on a working server - no point in breaking what's working unless you know the replacement will run. – Ian Macintosh Jul 11 '14 at 13:52

2 Answers2

3

If you're installing any OS in 2014 on modern hardware without 64-bit capabilities, you're making a bad design decision.

Even with the hardware RAM/CPU footprint you're describing for your VMware Workstation setup, it makes sense to utilize 64-bit versions of your operating system for forward compatibility, future-proofing and the very clear requirement you have for BtrFS 64-bit libraries.

ewwhite
  • 194,921
  • 91
  • 434
  • 799
-3

64bit is slower and takes more RAM than 32 bit.

64bit addresses larger than 4GB RAM faster than 32bit can address it (and more smoothly). Individual programs can address more RAM natively on a 64bit system. As you already know you can't run a 64bit guest on a 32bit system.

Updated for your comment below:

My answer above was giving a 'vs' answer because you had a 'vs' question. But don't forget that 32bit is limited to 4GB RAM. That's fine when you have less than 4GB (the bios and memory mapped devices nick some of the 4GB address space).

But when you have more than 4GB RAM then a 32bit system has to resort to 'paging' tricks to address the extra RAM. Your underlying system has more than 4GB of RAM so it will normally go faster because of that.

64bit is slower (and bigger) than 32bit because all the pointers are bigger, take twice the space in memory of the smaller and therefor faster 32bit pointers.

But offset against the slowness when you address the full RAM via paging, you probably find that 64bit is faster for that case.

32bit only rules in the 4GB or less RAM space regardless of whether it is a program or an operating system.

Don't upgrade your guests though unless you have a clear advantage or a need for 64bit in your guests.


I see from downvotes that more people disagree than agree with my statements above. I just happened to be on a site researching an unrelated topic (Linux CC & ITSEC Certification) and noticed this interesting paragraph on the subject:

Going back years we have run 32-bit vs. 64-bit Linux benchmarks. While the results seldom change, we keep running them as the question of choosing between a 32-bit and 64-bit Linux distribution image is still a popular question… These tests drive in a surprising amount of traffic and I continue to be flabbergasted by the number of people still asking this question when nearly all modern x86 Intel/AMD hardware fully supports x86_64 and it generally means much better performance. Usually the only caveat in not using a 64-bit Linux image is if running a system with less than 2GB of RAM. (italics added - see original article)

Seems I'm not the only one doing some actual real world work finding that 64bit isn't always the answer.

Michael Hampton
  • 237,123
  • 42
  • 477
  • 940
Ian Macintosh
  • 945
  • 1
  • 6
  • 12
  • Hello, I guess then you answered my question that this upgrade doesn't worth it in my case. All the VMs would just become slower. I was about to install new vms with btrfs which needs 64bit support, but I wouldn't like to experience that after the upgrade all my vms are slow so I rather won't do it. – DragonAge Jul 11 '14 at 08:27
  • If you are comparing AMD64 to IA32, then you have to take account for the fact that AMD64 having twice as many general purpose registers as IA32 allows for better optimized code. Also having 64 bit instructions means twice as much data can be processed per instruction, which gives a performance benefit for some operations. It is true that 64 bit pointers take up twice as much space, so if the code is heavy on pointers, that can be an issue, and memory bandwidth can become a bottleneck. I think the advantages outweigh the disadvantages. – kasperd Jul 11 '14 at 10:19
  • Sometimes it does and sometimes it doesn't from my experience. Almost exclusively when accessing less than 2G RAM in a program I found 32bit to have an edge over 64bit. As the compilers improve I suspect that will become less and less true. See [this test](http://stackoverflow.com/questions/2378399/are-64-bit-programs-bigger-and-faster-than-32-bit-versions) where a 32bit program ran in 17s vs 24s for 64bit. And then check all the varying results that others report. I suppose YMMV but in the 2G program area I've not seen 64bit benefit me at all - just my personal experience. – Ian Macintosh Jul 11 '14 at 14:10
  • 1
    When I found the _actual_ article that provided the quote in your answer, and read it fully, I noticed that it showed equal or higher performance for 64-bit Linux for nearly all benchmarks. And even for less than 2GB, the hassle isn't worth it. I always install 64-bit, everywhere. – Michael Hampton Jul 30 '14 at 18:09