Optimizing The Solus Linux Distribution For PerformanceFrederik KreijmborgBlockedUnblockFollowFollowingMar 25Warning: Includes flicking off some Kernel safety switches ????Photo by Chris Liverani on UnsplashAs I mentioned in my (totally subjective) Solus article, this marvelous operating system is very fast.
But there is always room for improvement, especially now that the revelation of a couple of theoretical attack vectors potentially compromising computers on the CPU level has disrupted even the mainstream media channels.
Theoretically, Spectre and Meltdown are really bad news, but in reality the threat seems to be exaggerated.
Don’t take my word for it, though.
Plenty of experts think that we’re sitting on ticking timebombs…The mitigations and added security improvements pulled in by recent Kernel upgrades have a devastating effect on the overall performance of countless machines around the globe.
(Ranging from ~18% to ~40% according to tests done by Michael Larabel from phoronix.
com)But even without turning off those newly introduced safety switches, any Solus distribution can be optimized for more (perceived) performance.
I’m referring to Solus + Budgie as Solus in this article and I believe the process is the same with GNOME.
With the Mate and KDE desktop environments the following procedures and their results may vary.
The bulk of these tips applies to other Linux distributions as well.
Note: I didn’t benchmark any of this myself.
If it feels faster than before, that’s good enough for me.
There are hundreds of benchmarks out there if you’re into numbers.
I’m into results, so here we go.
The Beauty Of SimplicitySolus looks great out of the box.
The memory footprint is totally fine and should not be a problem for any computer made after 2010.
Typical memory usage of Solus + Budgie without any active foreground applications as reported by “htop”I disabled all the bells and whistles to enjoy a vastly improved workflow.
I don’t need animations and shadows and transparency.
The Budgie Desktop environment has a nicely integrated settings application called “Budgie Desktop Settings” which offers not many, but relevant configuration options.
As you can see, I tinkered a bit with mine.
First step: Disabling animations & improving perceived performanceSecond step: Disabling desktop icons (saves some RAM and ensures a clutter-free workspace)Third step: Disabling the drop-shadow of the panel for aesthetic reasons onlyFourth step: Replacing background images with solid colors; aesthetic reasons and reduced RAM usageThese superficial changes improve the perceived performance; my desktop feels snappier but this probably can’t be shown with benchmarks.
The reduced RAM usage for icon- and background-less desktops is not a myth, though.
But a few dozen MB more or less won’t really affect any typical desktop computer today.
I just like my desktop clean since my physical desk is already a mess.
Killing Me Softly… In The BackgroundSolus does a very good job at keeping the machine cool and the fans quiet.
But in the standard configuration there is one background process that causes trouble: tracker-miner-fsThe GNOME tracker¹ is known to be a resource hog, using huge amounts of RAM and CPU cycles at the most inconvenient times.
On some distributions a GUI program called tracker-preferences can be installed to avoid using the terminal, although it has been deprecated a long time ago.
Disabling the tracker is via the command line is easy and can be done in several ways.
Hiding the GNOME tracker autostart filesSource: https://gist.
github.
com/Prezto/75d612cebc9300f83bc74830df3a6410Masking the corresponding systemd service files$ systemctl –user mask tracker-extract$ systemctl –user mask tracker-miner-fs$ systemctl –user mask tracker-storeNote: Masking the service files kills the tracker entirely so that the general status and that of the tracker daemon cannot be retrieved via the terminal anymore.
Disabling GNOME trackers with gsettingsThis is part of the bash script from above but several users reported that changing these settings alone was enough to make the GNOME tracker behave.
$ gsettings set org.
freedesktop.
Tracker.
Miner.
Files crawling-interval -2$ gsettings set org.
freedesktop.
Tracker.
Miner.
Files enable-monitors falseAlternatively, the dconf Editor can be used as a GUI tool for this taskSome users have removed the package entirely without any major breakages.
I opted for the safer route and just disabled the tracker.
For good measure, I added an autostart command: tracker daemon -kWhenever I get logged in and the tracker somehow manages to come back, it will be killed.
Via the “Budgie Desktop Settings” app I added the above commands to the list of automatically started apps and commandsThe tracker is still active if you keep the systemd service files unmasked!.But it doesn’t do anything anymore.
(Theoretically) Unsafe Kernel OptimizationsSecurity experts have spurred a panic but so far I’m not impressed.
Linus Torvalds didn’t seem impressed either.
I want a fast operating system and I’m aware of the risks of using a computer connected to the internet.
Fortunately, disabling the Kernel mitigations against Spectre, Meltdown and other (theoretical) threats is easy.
All you have to do is create or edit /etc/kernel/cmdlineI added the following to mine:nopti kpti=off nopcid noibrs noibpb nospectre_v2 nospec_store_bypass_disableAnd then I typed this into the terminal to update the boot records²:sudo clr-boot-manager updateAfter a reboot I enjoyed a (theoretically) unsafe Solus experience with all the computing power that I paid for when I bought my Intel processor.
Here is a nice list of all possible vulnerabilities and corresponding mitigations: https://wiki.
ubuntu.
com/SecurityTeam/KnowledgeBase/SpectreAndMeltdown/MitigationControlsYou can check which mitigations are enabled or available on your system with the following command:grep .
/sys/devices/system/cpu/vulnerabilities/*Call me crazy but it feels great to have back the old performance from before the Spectre spectacleReferences¹ https://wiki.
gnome.
org/Projects/Tracker² https://getsol.
us/articles/troubleshooting/boot-management/en/.