Linux kernel manages all RAM memory in your computer. Unused memory goes into a special buffering pool, where the kernel caches all recently used data. If a process attempts to read a file and the kernel already has the file cached, reading it is as fast as reading RAM.
Filesystem-heavy task, such as compiling source code, processing video files, etc. benefit from as much free memory as possible in buffering pool. It is not uncommon today to see users with powerful systems running tiling window managers in only a few megabytes of memory. Also, with the personal computer market in decline, people tend to keep their computers longer.
In this article I continue the measurements started in part 1 and part 2 of this series.
I use free command to measure memory. It basically prints out values provided by the kernel. Of interest to us is the number on -/+ buffers/cache line, 121MB in the example below:
Measuring desktop memory
Adam Williamson from happyassasin.net has a nice article titled Some comparisons between Fedora 13, 15, 17, 19 and 20. Adam works for Red Hat as Fedora QA Community Manager, meaning he knows what he’s taking about:
We can see that the memory used when you simply boot to a console and log in has changed very little all the way back to Fedora 13, released 2010-05-25. We’re doing a fairly good job of keeping our base system from bloating excessively. 19 and 20 are both 30MB worse than 17, but then, 17 was 25MB better than 15.
The same certainly doesn’t hold true for the graphical desktop, though. Just sitting at a mostly-idle desktop with a terminal open, our memory usage has gone from 275MB under the ancien GNOME 2 regime to 300MB with GNOME 3′s ‘fallback mode’ (which was more or less GNOME 2), then rocketed to nearly 400MB, 535MB, and nearly 700MB in subsequent releases. I haven’t yet looked in detail at the changes, but I did take screenshots of ‘top’ ordered by memory usage for each install.
The measurements are done using free command in a gnome-terminal immediately after bootup. GNOME runs in a virtual machine without hardware acceleration, and it ends up using Mesa llvmpipe driver. These are the graphs based on Adam’s measurements:
Fedora server memory (MB)
Fedora GNOME Desktop memory (MB)
Most of my software development takes place on a Debian 7 “wheezy” running LXDE. It is stable and provides me with everything I need. I also keep a copy of Fedora on a different partition on my hard disk, the attraction being the latest versions of gcc and glibc. In this article I will take a look at the latest Fedora release.
Usually when installing Linux, my main concern is the RAM memory. In my work I need as much as I can get. One option would be to start with a regular server install, and add X11, LXDE and everything else on top of it. Building such a system from scratch is not exactly difficult. However, today I’m lazy, and I’ll go for a Fedora LXDE Spin install. I will remove after installation everything I don’t need.
The download page is here. The installer still has some problems, for example updating an existing partition tends to get it confused. First boot in the new system I open a terminal and run free command. It uses 220MB of memory, which is not so bad.
The procedure is simple, I look at ps aux output and remove or disable everything I don’t really need.
First one to go is Clipit. It is a clipboard manager that tracks your every key stroke. As you start the system, it tells you politely what it intends to do, and it advises you not to type passwords. I have no idea why would anybody run this on his computer in a post-Snowden world. So, I open a terminal, su and
# yum remove clipit
In my previous article I’ve tried to investigate the RAM memory requirements for running some of the most common light window managers and desktop environments available in the Linux world. Prompted by several readers, I’ve decided to include also the big, well-known memory hogs that grab most of the Linux market, i.e. KDE, Unity and Gnome.
I am using the same setup, based on virtenv. It includes its own xserver (Xephyr) and a virtualization container (LXC). The computer is an older 64-bit machine, running Ubuntu 12.04 with LXDE as desktop environment.
After I install a new version of Linux, I usually take a good look at the screen. Does it have a task bar? Can I find my window after it was minimized? The direction some desktops are going is not clear. Making it easier for current users or for the people coming from Windows or Mac is not a goal anymore. User complains are dismissed, chalking it up to the fact that people don’t like change.
Fortunately, in Linux we have plenty of other choices, and we do like change. We have no need to keep using desktops we don’t like.
I will describe some of choices in this article, and I’ll attempt to measure the RAM memory requirements. I use free command in an xterm before and after the graphic environment is started on a separate X server (Xephyr). free command prints on the screen data made available by Linux kernel. The kernel knows at any moment how much memory is using and how many buffers are available.