This is my first post in this forum. I've been an Arch Linux user for several years and came to Garuda a couple of weeks ago just to test BTRFS (with its features like subvolumes, snapshots ...) - and here I am ::. I've been a KDE user forever, and I'm running the KDE Barebones version under Wayland (as the other versions are too bloated for me).
I've seen many complaints in this forum about performance and stability problems causing some people even leaving Garuda. Here are some thoughts about these issues:
Yes, I had noticed them, too. I had tried to find the culprit by disabling/masking the services of the various Garuda-specific goodies - but to no avail.
But finally I found one setting that made a huge difference: disabling quota by executing
sudo btrfs quota disable /
and (important!) by disabling quota support in Timeshift.
Since then my system is fast again!
However, one irritating result is that with every update Timeshift produces errors like:
E: ERROR: can't list qgroups: quotas not enabled E: btrfs returned an error: 256 E: Failed to query subvolume quota ------------------------------------------------------------------------------ Removing snapshot: 2021-03-22_14-42-12 Deleting subvolume: @ (Id:830) Deleted subvolume: @ (Id:830) Destroying qgroup: 0/830 E: Failed to destroy qgroup: '0/830' E: Failed to remove snapshot: 2021-03-22_14-42-12
... but snapshots are reliably created (and deleted) nevertheless.
Extra tip: You might also run into performance issues with very large files, e.g., large Virtualbox image files. My Windows10 VM had become unbearably slow. Solution: Disable copy-on-write for those files and disable compression for, at least, the large files. Result: My Windows10 VM is as fast as before!
I don't have any but can't tell about other DEs than KDE. My impression is that these problems might be caused by the fact that Garuda is very user-friendly and, thus, attracting users which are not familiar with rolling distros. And rolling distros need some discipline and maintenance! Fortunately, this can be automated to some extent.
- First of all: Never ever install a package by just executing
sudo pacman -S package
Rather, always use
sudo pacman -Syu package
in order to avoid partial upgrades.
To make things a bit easier I've created the following alias in my .bashrc:
alias i="sudo pacman -Syu"
is all you need.
- I update my system using the following alias:
alias u='paru -Pw while true; do read -n 1 -p "Continue? [Any key/N(o)]" ANSWER if [ "$ANSWER" == "N" ] then echo echo " *** Break! ***" break else echo echo sudo reflector --verbose --country Germany --protocol https --latest 20 --score 10 --sort score --ipv4 --save /etc/pacman.d/mirrorlist && \ sudo powerpill -Syu && \ paru -Sua && \ sudo updatedb && locate --existing --regex '\.pac(new|save)$' > pacnew.log && \ sudo paccache -ruk0 && sudo paccache -rvk2 pacman -Qqn > pkglist.txt pacman -Qqm > pkglist-foreign.txt if [ -s pacnew.log ] then echo echo "ATTENTION! .pacnew and/or .pacsave files available": cat pacnew.log fi break fi done'
- paru -Pw (or, if you prefer, yay -Pw) looks for news on archlinux.org. If there aren't any or you've read them, just press any key to continue. If the news suggests a manual intervention before updating, press the N key to interrupt the update process.
- I let reflector sort for the mirror score (not for the fastest as they would have to be tested by reflector which needs time) as they usually belong to the fastest mirrors anyhow, and by using powerpill with 5 parallel downloads my bandwidth is fully used.
- paru -Sua (or yay -Sua updates the AUR packages
- The updatedb line locates .pac(new|save) files. (See the link in the second post.)
- The paccache line cleans the pacman cache. (See the link in the second post.)
- Finally, if there are .pac(new|save) files they are displayed so I can immediately merge/modify them by using the alias
alias pacdiff='sudo -H DIFFPROG=meld pacdiff'
- If important packages like the kernel or the DE are updated I reboot immediately in order to avoid running into problems.
- I automatically check for updates several times a day. If only a handful of packages are updated and you're running into problems, it's relatively easy to narrow down the culprits. If you update only once a week or every second week, that's much harder if several hundred packages are updated.
By applying this strategy I've had a stable Arch system over several years. So I hope that these comments will be helpful for some of you.
P.S.: I just found out that new users can only add 5 links to a post. So the remaining links will be added to a follow-up post.