Ubuntu Server Requirements
New Ubuntu Server Requirements - Planning
When setting up a new Ubuntu server you will generally start planning by determining your requirements. You are going to want to determine what the requirements are for the operating system you are running and for any applications running on top of that. You will want to start be looking for the recommended requirements for the OS and adding a little on top of that to give yourself room to operate. Beyond that, you will need to estimate what your application needs are. If you are just testing the OS for a proof of concept or a development host, you might be able to get away with fewer resources then recommended. In production, this wouldn’t be such a good idea. In either case, planning is important before buying hardware or allocating VM or cloud resources.
The base requirements for a server are generally going to be less just to run the operating system since you likely won’t be running a GUI. You could run a GUI but this isn’t really recommended. Fewer resources will be allocated to the OS and more to the application services that run on top of it.
As of today, 32-bit and 64-bit versions of Ubuntu can be downloaded for both desktop and server editions. This includes versions up to 17.04 and will probably continue with later versions. 32-bit versions won’t necessarily have the same support though. Check their site if you REALLY need support on a 32-bit system for some crazy reason.
Ubuntu Server Requirements – My Thoughts
Server requirements are going to be a bit different from desktop requirements. You are generally not going to be running a GUI, so things will be simpler and will require fewer resources for the system. Depending on the use case though, the resources you end up using for services will vary greatly. If you are, for example running a simple DNS and DHCP server for a home office, you won’t need much more than what is required to run the operating system. On the other hand, if you are running a huge, production database server with thousands of users, you are going to be allocating a large percentage of resources to the database. You would need a tiny slice for the OS but most of your planning will be focused around the needs of the database.
When building a basic development server, one that doesn’t account for much more than the OS, I generally only allocate a single core or CPU. I usually start out with 1 GB of RAM. You could go less but these days 1 GB is reasonable and pretty modest. I generally allocate about 8 GB of disk space. Approximately 4 GB will be used for a really basic Ubuntu Server install. You could use all of the normal methods to install on hardware (CD/DVD, USB disk, network install) but if you are installing on a VM it is easiest to just mount the DVD ISO image and install from there. Once you have built one Ubuntu server VM, you can just clone that and create more.
Ubuntu Desktop Requirements – My Thoughts
Requirements based on the download page for Ubuntu 16.04.2 LTS and 17.04:
- 2 GHz dual core processor or something more powerful
- 2 GB RAM
- 25 GB of HD space free
- DVD drive or USB port - for install media, really the USB port these days
- Internet connection – optional but will allow updating the system during install
The CPU recommendation should be completely fine. For a good desktop experience you are going to want at least 4 GB of RAM or more. You could probably get by with 2G but once you start doing a lot of things at once or even opening a lot of tabs in a browser you will probably start running a little slow. If you are running a lot of VMs on your desktop or doing really resource intensive stuff, you might want even more RAM (like 8 GB or 16 GB). Also, keep in mind that while browsing the web may seem like a really simple, basic task, it can burn up a ton of resources. Modern webpages can be really, really intense (slow for no good reason).
One thing that can really slow down a system is the hard disk. If you have an old slow disk, think about replacing it with an SSD. A mechanical hard drive will work totally fine but it is going to lag a bit, especially when anything needs to be loaded from disk. You can also always just use an SSD for your OS and software, keeping larger long term data on a secondary mechanical drive.
A DVD drive or USB port are recommended. Really, the more modern way to install an OS is to use a USB drive. You also have the option of using the network installer. There is a network installer disk that contains a minimal system image to boot into the installer. From there, everything would be pulled down from the repos. If you wanted to go a step further, you could create your own custom network install server (Kickstart, MAAS, or something) and boot your system off of the network using a DHCP/TFTP/HTTP combo. This is great for large deployments. If you are using VMs, you could also always just clone an existing VM, change the MAC/IP, and boom… system installed.
Other Editions
There are other editions (such as cloud or core) with different requirements. We aren’t covering these here.
Live CD
If you want to test out Ubuntu you can use the install disk to boot into a live system. From here you can see how the system behaves and test things out. This works with the install CD and USB install disk. Keep in mind that if you are running a live system from an install disk, your experience won’t be the same as if you actually install the system. This is true whether you run from CD or USB disk. It is also true whether you are using a VM or real, physical hardware. Things will most likely be laggy and just won’t feel that great. If you actually try to do real work on a system like that, you will begin to hate the system. You can test with the live disk but if you really want the full experience, you should actually install the system. Ideally, for a desktop, install on real, physical hardware. Installing to a VM may work OK but usually won’t give you as smooth of an experience. In an ideal world, you will install on a physical system with recent hardware, plenty of RAM, and an SSD.
Browsers Need Newer Hardware and Software….
It is important to keep in mind that, even though you can install a working system on older, more modest hardware, that doesn’t mean everything is going to work well (ex: 32-bit CPU, 512 MB RAM). Sure the OS, the interface, and all of the utilities may work just fine but you may run into issues with the web. Browsers these days tend to take more resources than they did in the past. Even if you can get the browser working reasonably well, performance will depend on individual web pages. As time goes on, pages tend to hog more and more resources. So yeah, you can install 32-bit Ubuntu on an old 32-bit laptop with 512MB of RAM and it may work well with a lightweight desktop but once you start to load a lot of really common web pages, your system will come to a grinding halt. Even a page that looks like just a bunch of really simple text that doesn’t do much of anything will usually have a TON of JavaScript running, bogging things down. Developers (myself included) won’t think twice to just include huge JS libraries that may not even be strictly necessary.
Besides performance, you may find that your browser, or a browser that can at least render modern pages properly, isn’t even supported on 32-bit hardware or older versions of Ubuntu. Google Chrome has dropped support for 32-bit Linux and older versions of Ubuntu in general. So even if you could get it to run, you might not have the packages to install. Google Killing Chrome for 32 Bit Linux
The Documentation
This is the official doc from Canonical. System Requirements I don’t totally trust it but it does give some good background information. The revision history on the page shows that it is currently maintained but I wouldn’t trust the actual recommended specs here. If you check their download page you are going to see different numbers that are actually better for more recent editions of Ubuntu.
Raspberry PI and ARM systems
Yes, Ubuntu can run on the Raspberry PI. Generally, you are going to want to go with the Raspberry Pi 2 or 3. There aren’t a lot of options to choose from, you can’t exactly add more RAM to a Raspberry Pi system. Requirements are going to be more about picking the right distro than picking the right hardware. Ubuntu supports installing “Snappy” Core editions on the Raspberry Pi. Personally, I would recommend using Ubuntu Mate instead. This is going to allow you to use the normal version of Ubuntu (armhf base) which includes things like apt-get. See here: Ubuntu Mate - Raspberry PI
Non-Intel Systems
Besides the ARM, we won’t be covering any non-Intel based systems.