Ulatencyd is a daemon which constantly optimizes the Linux Kernel for best user experience. The default configuration tries to increase the responsiveness for a typical desktop system but you can use it on any type of system since it's configurable (it supports the lua scripting language).
The daemon basically tries to achieve the same thing as the old "200 lines Linux kernel patch", but better:
From the Ulatencyd GitHub page [about the "200 lines patch"]: "I think that this minimal approach is good for some circumstances, but does not provide enough flexibility required for a true low latency desktop. Perfect desktop scheduling needs a lot of heuristics, that don't belong in the kernel. For example, the patch won't protect you from swap of death, fork bombs, can't detect which process you are actually using and give more cpu shares to them, can't give realtime priorities to processes like jackd, etc... ulatencyd is designed for fixing exactly that".
Daniel Poelzleithner, the Ulatencyd developer, notes in the release announcement which dates back to 2011, that:
"I'm able to run a make -j 40 on my dual core machine while looking a full hd movie without problems and the ui from kde still feels good".
According to its wiki, Ulatencyd has 3 different parts: the core, which does process parsing, building a process tree, etc., the rules, which categorize the processes, analyze the system and so on and the scheduler, which uses the information collected by the first 2 and makes decisions on the processes.
Both the rules and the scheduler can be adjusted by the user - for more information see: writing rules | adjusting the default scheduler. For most desktops, the defaults should be enough though!
Ulatencyd even comes with a tray icon which should allow switching from the default desktop configuration to a gaming configuration:
However, the GUI (which can be started by using the following command: "ulatency --gui") doesn't seem to be working properly: changing the configuration profile didn't work in my test under Ubuntu.
I've been testing Ulatencyd for a few weeks now and I can tell you that my system feels a lot more responsive. I wanted a second opinion so I've asked Miroslav Hadzhiev (Мирослав Хаджиев), the Ubuntu Bulgarian Translators Manager, to try it for a few days and he was pretty impressed, saying that his system is snappier and the apps respond in a quicker manner using Ulatencyd.
If you give it a try, let us know in the comments if your system feels more responsive with Ulatencyd!
Install Ulatencyd in Ubuntu
Update: some users have reported that Ulatencyd caused Kernel panics on their system. This is related to the Kernel itself and not Ulatencyd. Anyway, use this with care and only if you know how to fix any issues that may occur! If you encounter bugs, report them @ Launchpad, either against ulatency or the Linux Kernel itself (for instance, to report a bug in the Linux Kernel, run this command in a terminal: "ubuntu-bug linux").
Ubuntu / Linux Mint (and derivatives) / Debian users can install Ulatencyd by using the following command:
sudo apt-get install ulatency ulatencyd
For other Linux distributions, search for Ulatencyd in your distro repositories or grab the latest code from GitHub.
For more information about Ulatencyd, see its official wiki.