23

Coming from windows server/MacOS...

I've been researching for my first linux deployment and I have settled on Ubuntu/GlusterFS for a high performance file server.

I have a question about the resources needed by GUI. I understand this is a server and it should be bare bones for performance, but I have a situation where this server might be administered occasionally by a non-technical person that is not comfortable whatsoever with command-line. I don't want light versions of applications, if they get distracted and watch youtube videos, dropbox uploads, email or whatever they do while at the server that does not bother me whatsoever. What does bother me is getting a call because youtube/dropbox doesn't work on the server and they didn't want to leave the machine room.

In my research I've only seen absolutely negative things about the gui resource use. Some reports are as high as 50-60% resources used by gui alone. Is this applicable to a purpose built machine, something like 36 bay supermicro with top line dual processor/128GB/256GB RAM, or is this only relative to minimum spec boxes?

Also, is this happening when these heavy packages (mediaplayer/browser/etc) aren't open, or only when they need processing? If they don't use resources other than disk space, no big deal. Even if they use a bit, that's fine too, I would willingly give 4-8GB RAM overall, which is waaaay too much, but I really don't want that call. There will be sufficient headroom built into all aspects of resources.

Would it be beneficial at all to install ubuntu server and then the gui over the top, or is the full gui version of ubuntu fully capable as server OS, just bloated and prettier?

I am coming from no linux experience, so to see this sort of server with gui specific comment is very alarming.

Any help appreciated, thanks Y'all

  • Does Gluster and Samba have any meaningful configuration GUIs? – vidarlo Apr 12 at 9:09
21

Ubuntu is Ubuntu. The server and desktop editions run on the same base and pull from the same repositories, they're just pre-configured differently out of the box. Since they point at the same repositories, it would be absolutely fine to do a sudo apt install ubuntu-desktop on a server system in order to get a GUI up and running.

GUIs do use system resources, but not much, especially when the DE is idling, and especially on a system with hundreds of GBs of RAM and a dual socket motherboard. If installing a GUI on your server would be beneficial and help your team be productive, then you won't hurt a thing by doing so. I personally don't like running GUIs on servers because they do use some RAM even when idling, but to each their own. In my synaptic I see 4 different options for GUIs that you can install without getting exotic and adding additional software sources:

  • ubuntu-desktop (Installs the default Ubuntu and Gnome Shell experience, which is what you get if you download regular desktop Ubuntu)
  • kubuntu-desktop (Installs the default Ubuntu and KDE experience, more Windows-esque)
  • lubuntu-desktop (Installs the default Ubuntu LXDE experience, LXDE is billed as being lightweight)
  • xubuntu-desktop (Installs the default Ubuntu XFCE experience, XFCE is billed as being lightweight)

So to install one of these just run sudo apt install packagename

Just be aware that those packages are what are known as "meta" packages, in that they don't contain anything themselves, they just point to a whole list of other packages that set up a predefined condition, such as a default Kubuntu desktop environment with all of the normal applications that would come with that. What that means is that when you install one of those, you might see it download a LOT of additional packages, and it may actually take a few minutes to set up. You may also see it brand your "server" as Kubuntu, Lubuntu, etc. Don't be alarmed, it's just a logo, :-)

  • 4
    These packages are not "transitional", they are meta packages. Transitional packages are those used temporarily to provide seamless upgrades when a package is renamed or otherwise replaced. For example, ubuntu-gnome-desktop is now marked as a transitional package because it is not needed anymore, its role was taken over by ubuntu-desktop or vanilla-gnome-desktop. (And both "meta" and "transitional" packages are just plain regular packages, there is nothing technically special with them except that they typically don't contain files.) – Philipp Wendler Apr 11 at 9:34
  • These ubuntu boxes will be part or a four node gluster cluster serving files for a vfx studio with a heavy rendering load. I'm gonna go with the regular ubuntu desktop experience, maybe cinnamon as I've heard it's nice. Excited to get started with linux with a deep dive! – spicyboi Apr 11 at 16:34
  • Thank you for the correction Philipp, I will correct the error in my terminology. – Gerowen Apr 12 at 1:47
  • 3
    "installing a GUI on your server would be beneficial and help your team be productive, then you won't hurt a thing by doing so". One shouldn't ignore the security implications though. The more packages you install, the more security relevant bugs there are going to be. And GUIs tend to have a higher number of bugs than simple server code. – Voo Apr 12 at 9:36
8

Since you ask for any help at all, I’ll chime in, hoping for no downvoted:) I know someone who installs GUI packages on such servers where a remote UI would be needed for troubleshooting. It’s useful for users that aren’t familiar with cli too much. So it does work. The GUI is just a package and it’s dependencies (so many packages) something like apt-get install ubuntu-desktop

The way I understand it is that the GUI uses X amount of resources. It won’t use more than it needs. So if your box has a lot more resources, it shouldn’t be detrimental.

Here the thing that you might want to use. If you install the GUI, don’t make it load by default. So the target shouldn’t be this interface. Rather you should configure your server to be a server and also have the ability to load the graphical interface with one command. This way the GUI won’t be running and most of these recourses won’t be used unless you need them.

Good luck and hope this helps!

edit: I missed one point. GUI version of Ubuntu is fully capable. The thing is, for example, you won’t have the webserver, because it comes by default with the packages designed for desktop use. But anyway even on the server version you’d need to install a webserver and also configure it, because you might be using various web servers, and Ubuntu team doesn’t know which one you want for sure. But for example the SSH stuff, Ubuntu desktop comes with the client not with ssh-server. However if you install the server version, it will have the ssh-server by default. Again even on a desktop, installing ssh server is trivial and is a one liner

4

Since nobody has yet answered the question of resources usage, I’ll take a stab. Ubuntu server has the following system requirements:

  • 300 MHz x86 processor
  • 256 MiB of system memory (RAM)
  • 1.5 GB of disk space
  • Graphics card and monitor capable of 640x480

From here

Installing the Ubuntu-desktop package (which I assume is what you’re talking about when you say adding a GUI) makes the system essentially like you had installed the desktop version. The desktop version has the following requirements:

  • 2 GHz dual core processor
  • 2 GiB RAM (system memory)
  • 25 GB of hard-drive space
  • VGA capable of 1024x768 screen resolution

Also from here

Certainly more resources utilized, and approximately in line with the 50-60% number you quote, but really not a lot when you’re talking about server-class resources.

On to the second point: should you install the server edition, then add the Ubuntu-desktop meta package, or install the desktop edition directly? The functional differences between the two are small, and from an appearance perspective almost nonexistent. These two options will look almost identical, the difference will be in how you ‘expect’ to configure things like network interfaces, displays, hard disks, etc. The server edition will not come with the ‘convenience tools’ for easily configuring and managing these items (NetworkManager, Disks, etc.), and will instead assume that you want full manual control of the configuration and management of these things.

Small amount of resources aside, this choice comes down to who will be doing the configuration and management, and what skill level they have/amount of manual control they want.

4

I have been running various versions of Ubuntu Server with a lightweight GUI for many years.

After the base install I add a minimal graphic environment via apt-get install xinit, and then I add fluxbox which is a window manager with a small footprint. Then I add audio support via apt-get install alsa-utils. Browsers nowadays expect pulseaudio to be present for audio to work, but there is an excellent tool named apulse that emulates pulseaudio good enough for e.g. youtube watching, without requiring pulseaudio itself to be installed (or you can of course install the full pulseaudio package if you prefer).

This is very bare-bones, and doesn't use more than a couple of hundred MB of virtual memory when no graphical applications are active.

  • +1 for lightweight Window manager. This is what the OP wants. – mckenzm Apr 12 at 2:29
  • "Browsers nowadays expect pulseaudio to be present for audio to work".. please tell me you don't use a web browser on your production servers. – Voo Apr 12 at 9:41
  • I wouldn't run a browser on a production server, except maybe if I remove the default route at the same time. But I have a lab server that is used like this. – Cuspy Code Apr 12 at 10:11
0

As others pointed out, running server with GUI is fine, although quite unorthodox - usually unix sysadmins know their way around terminal (it's faster and a lot of admin operations cannot be done from GUI).

That said, I personally installed GUI on non-critical servers few times (for the exact same reason you mention - occasional simple operations done by non-technical person). But from personal experience - check hardware parameters and hardware requirements beforehand. I installed GUI on DELL server with 2MB maxtron graphics card and it didn't go so well.

0

You say you're using this as a fileserver, which suggests to me you will have another computer of some sort which you use as your desktop.

Consider connecting in a remote desktop-like fashion with Xming on Windows, or XQuartz on macOS.

It's been a long time since I tried it with Windows, and I've never tried it with macOS, but this article has a good overview on how to do it. It's specifically tailored to running stuff on their servers, but I trust you can adapt it for your personal uses well enough.

The key takeaway is run the X11 implementation server on your local machine (Xming, XQuartz, or Xorg), SSH to your remote machine (the fileserver) with trusted X forwarding on, then run the GUI application of choice on the remote machine from within the shell.

This will require a little preparation on the server side, of course - you will need to install an X11 implementation client on there. For Ubuntu server, the easiest way to do this is sudo apt-get install xauth. Any GUI applications you install thereafter will pull in any required dependencies and it should all Just Work. See this article for reference.

Doing the above will give you the best of both worlds - a GUI for you to use to administer your server as and when you wish, and no overhead of running the GUI when you're not looking at it.

  • 1
    This is a good alternative to the install, but running programs from the terminal is the exact opposite of what i need to tell someone with no CLI experience – spicyboi Apr 11 at 21:30
  • With respect, I don't think that's a particularly good attitude to take with regards to learning. The terminal is a very normal way of doing things, and avoiding using it at all possible costs will stunt you. Besides, you could (I think) install something like gnome-session-fallback to start in the terminal, which will get you a launcher like the start menu that you can use to launch other programs. – Adam Barnes Apr 11 at 23:35
  • 1
    With respect, I'm a windows sysadmin. This is for a project that can't retain service under budget, but they deserve a rock-solid setup that works for them at their skill level.Telling a client they have a bad attitude towards learning is sure way to not have a client at all. If I was administering this I would only use CLI, but this is just a deployment. – spicyboi Apr 12 at 16:34
  • Aah forgive me - I was labouring under the misapprehension that you would be administering it. In that case, I imagine you've already looked into fileserver solutions such as FreeNAS, which has a browser-based management interface? – Adam Barnes Apr 12 at 19:15
  • Yes, not a fan of free nas in my experience, but I've heard amazing things about linux for vfx file servers in a mixed client environment. Also not aware of any clustering ability in free nas/zfs storage. This will be high availability setup with a few nodes connected via glusterfs – spicyboi Apr 12 at 23:18
0

Aside from the performance/system spec issues recounted above, it's typically recommended not to run a gui on a dedicated server, for security reasons. The argument is, that a gui runs more services and processes than a bare-bones kernel and server apps, and each provides a potential route of attack on the system. I am far from expert on the magnitude of any additional risk, but depending on your environment you might want to check it out. Hopefully others here may be able to advise.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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