I have an old machine with an Intel D2700DC motherboard. I use it as a home server for some side projects. I have Ubuntu 32-bit installed on it, but recently figured out that its embedded D2700DC CPU is actually a 64-bit processor.

My question is does it worth reinstalling Ubuntu 64-bit there instead of 32-bit? I have 3GB RAM and looks like there's a limit of 4GB for this hardware.

Do you think it will be faster in some ways or what other benefits I can get from installing 64-bit? One reason I see is that Ubuntu stops supporting 32-bit in the last major releases and I still have Ubuntu 18.04 there.

  • 1
    Do you have 4GB but it is only showing 3GB because of the 32bit? Also check motherboard, some have separate limits. But generally the cusp was 2GB of RAM. If more than that, then 64 bit probably better. But it becomes a total reinstall. You have to have good backups, so you can easily restore your system. – oldfred May 29 at 20:44
  • Is this your motherboard? teket.com/en/motherboard/intel/d2700mud.htm – K7AAY May 29 at 20:56
  • I have re-installed 32-bit Mint Cinnamon 19.3 in favour of 64-bit Ubuntu Mate 20.04 just yesterday and I can tell you my fullscreen IPTV no longer tears ;) Choose your distro wisely for low-powered system like this Atom-based one. – LinuxSecurityFreak May 30 at 9:29
  • I have just 3GB of RAM on this old machine, This is an old machine, but probably I need to upgrade it to 4GB at least :) Thanks for the idea with Mint. I don't have too many things on this machine besides just bunch of scripts and a backup storage of my cloud storages (like Dropbox). I actually was thinking to install Fedora there to try something new. – Alex May 30 at 9:51
  • @LinuxSecurityFreak that's most likely due to differences in driver versions or configuration, not 32 vs 64 bit software. – Ruslan May 30 at 15:31

It won't be faster in any meaningful way, but the reality of 32 bit is that it's increasingly legacy, which means, in the real world, bugs are not getting found and fixed.

I would install 64 bit if I were you primarily because it will be more reliable and have bugs fixed more often. It will also future-proof your machine, since you can then just update to the next OS version every now and then without having to worry about it.

All FOSS projects have finite developer eyes/hours available to them, and 32 bit just isn't getting many of those eyes and hours anymore, and there are no magic coders that just fix stuff because it's broken, sadly. It's wisest to just accept this limitation as reality, since it won't really change.

I know of at least one 3rd party Linux kernel builder who stopped supporting 32 bit relatively recently because of a series of 32 bit kernel bugs that were known but were not getting fixed, nor did they appear likely to ever get fixed in the future. And that's the Linux kernel project, which has thousands of contributors. It just goes downhill from there with other projects with far fewer developers. This situation will happen to more and more core and not so core software and tools as 32 bit gets removed from more and more primary GNU/Linux distribution pools.

This becomes increasingly relevant as major projects like Google Chrome, Firefox, etc, start to drop, if they have not already dropped, 32 bit support, which means you'll be using insecure non-updateable software to access the internet.

Note that you can in theory sort of cross grade 32 bit to 64 bit (at least on Debian, not sure about Ubuntu), I tested that on one machine to see, but it's such a pain, and takes so long, and leaves so much cruft, and requires so many manual fixes, that in the end, I decided that was not worth it, and just switched the rest of my systems to 64 bit by reinstalling.

Keep in mind you can copy your main configs, and then get a package list, and reinstall the packages when you reinstall to 64 bit, it doesn't take that long, and once it's done, no more need to worry about it.

Your other option is to just never upgrade your box again, and just let it run until it dies. On systems that don't interact with the internet that's not a terrible way to deal with the stuff, but you may hit a snag one day when you need to match versions of something like samba or nfs and you can't because your server box OS is too old.

| improve this answer | |
  • This is a very good point. Didn't think about that, but actually I already got this problem with outdated software as the latest Ubuntu that officially supports 32-bit is 18.04. – Alex May 30 at 9:48

It's probably worth reinstalling to a 64-bit operating system. As Lizardx mentioned, there's less focus on 32-bit x86 systems right now and people are fixing fewer bugs there.

Additionally, it is a real possibility that it will be slightly faster, since x86-64 has 16 general-purpose registers and x86-32 has only 8. Position-independent code, which is used for security reasons in most binaries these days, is free on x86-64 with RIP-relative addressing but needs an additional register on x86-32. Having additional registers means that programs can keep more data on the CPU instead of having to go to memory, improving performance.

However, there will probably be a slight increase in memory usage, since pointers will be 64 bits instead of 32 bits. If you're really stressed for memory right now, that won't make it any better, but otherwise, it's probably fine.

In general, my recommendation is to do so. You'll get a better supported, slightly more performant environment.

| improve this answer | |
  • I've never noticed any unambiguous performance increase in daily office tasks since I switched from a 32-bit to 64-bit system. But the increase in memory use appeared to be considerably more than "slight": about 2× compared to before. – Ruslan May 30 at 15:27
  • It really depends on the workload. If you're doing a lot of CPU-intensive tasks with lots of intermediate variables, it will be significant; otherwise, it probably won't be as noticeable. And again, it depends on your workloads for the memory: if they're pointer heavy, they'll use a lot more RAM. – bk2204 May 30 at 16:28
  • That's why I specified the workload: typical office tasks (text editing, Internet browsing etc.). And the RAM usage was on basic just-logged-in Kubuntu. Also don't forget that aside from pointers, on typical Linux distributions also long int, size_t and a bunch of other types are 64-bit, unlike on the 32-bit systems. – Ruslan May 30 at 16:34

The gains to redeploying a 64 bit distro are going to be marginal at best. Sure you'll get some more memory support, but unless the current box is under memory pressure that probably won't be noticeable.

Given the age of the hardware, you might be better off building a new 64 bit install on more-recent hardware (not necessarily new), and migrate all functions off the old box over time. Eventually the old box will be doing nothing and you can turn it off and store it(or just its drives) for a while against the possibility something was missed.

Then you can either dispose or redeploy the box. If its 32 bit only, there's not a lot of use for it. Same if its a power-hungry P4.

I'm in your position too - I have a debian host which was installed in 2001, and while every piece of hardware has been replaced over time, the distro has been upgraded, its still the original "install" and is 32 bit.

I'm doing exactly this, but the new boxes are three separate VMs under xcp-ng, so I'm splitting out email functions from webserving from "everything else" Doing it this way means you're able to focus on one service/task at a time. I moved squid to the "everything" box last, and now that's settled I'll work on migrating Cacti to the webserver. Downside, without motivation this is a slow process.

| improve this answer | |

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