before we start its suggested to set up su instead of sudo because it provides better permissions. you can set it up using

sudo passwd root

after that you no longer have to use sudo and only have to enter su once everytime you open a console. meaning put in su then hit enter, fill in your root password that you just made with “sudo passwd root”, and hit enter again before you enter commands.

now there are a bunch of services running in the background that most people will have no use for that will be wasting resources and some such as NetworkManager-wait-online.service that will even slow down boot speeds. don’t believe me? search it up its a long known issue for linux in general. here is a full list of the onces I’ve found so far

NetworkManager-wait-online.service

systemd-journal-catalog-update.service

systemd-coredump.socket

kdumpst-init.service

steamos-kdumpst-layer.service

steamos-devkit-service.service

steamos-dump-info.service

steamos-cfs-debugfs-tunings.service

gpu-trace.service

steamos-log-submitter.service

systemd-journald-dev-log.socket

systemd-journald.socket

systemd-journal-flush.service

systemd-journald-audit.socket

syslog.socket

you can find Linux built in descriptions for each of these by entering this into a console

systemctl

you will be given a long list of what is running on the system with descriptions on the right side. most of whats provided above are either loggers or debugging services.

there is also a service for Dualshock controllers if you don’t need that

ds-inhibit.service

if you don’t need MDNS there are two more you can disable for that

avahi-daemon.socket

avahi-daemon.service

for anybody that might try to disable other services on their own do NOT disable systemd-journald.service. disabling this specific service will cause many issues even preventing you from updating the OS itself or using certain commands in the console.

as for how to disable these services as mentioned before enter su before you enter any of the following commands

systemctl mask NetworkManager-wait-online.service

systemctl mask systemd-journal-catalog-update.service

systemctl mask systemd-coredump.socket

systemctl mask kdumpst-init.service

systemctl mask steamos-kdumpst-layer.service

systemctl mask steamos-devkit-service.service

systemctl mask steamos-dump-info.service

systemctl mask steamos-cfs-debugfs-tunings.service

systemctl mask gpu-trace.service

systemctl mask steamos-log-submitter.service

systemctl mask systemd-journald-dev-log.socket

systemctl mask systemd-journald.socket

systemctl mask systemd-journal-flush.service

systemctl mask systemd-journald-audit.socket

systemctl mask syslog.socket

if you don’t need the Dualshock controller service

systemctl mask ds-inhibit.service

if you don’t need MDNS

systemctl mask avahi-daemon.socket

systemctl mask avahi-daemon.service

this will permanently disable these services. if you want to enable any one service just change mask in the command to unmask or use the following to enable them all again

systemctl unmask NetworkManager-wait-online.service

systemctl unmask systemd-journal-catalog-update.service

systemctl unmask systemd-coredump.socket

systemctl unmask kdumpst-init.service

systemctl unmask steamos-kdumpst-layer.service

systemctl unmask steamos-devkit-service.service

systemctl unmask steamos-dump-info.service

systemctl unmask steamos-cfs-debugfs-tunings.service

systemctl unmask gpu-trace.service

systemctl unmask steamos-log-submitter.service

systemctl unmask systemd-journald-dev-log.socket

systemctl unmask systemd-journald.socket

systemctl unmask systemd-journal-flush.service

systemctl unmask systemd-journald-audit.socket

systemctl unmask syslog.socket

systemctl unmask ds-inhibit.service

systemctl unmask avahi-daemon.socket

systemctl unmask avahi-daemon.service

more services seem to be added in each update so it is possible that if you are on an older version of steamos than me (I’m on 3.6) you might not have some of these services yet.

now as mentioned before the Journald itself must stay enabled (systemd-journald.service) but we can prevent it from writing to the disk which will provide a slight performance improvement

you can do this by going to rootfs/etc/systemd/ then opening journald.conf as a text file and editing #Storage=auto to instead be #Storage=none

now the next is about two mount points that again most users do not need but will be doing stuff in the background these are debugfs which as the name suggests is for debugging and tracefs which is used for logging

I do not recommend disabling these permanently as it could potentially cause issues with updates but you can safely unmount them everytime you reboot by entering this into a console

umount debugfs

umount tracefs

you can then use systemctl to see if they are unmounted. they will disappear from the list when unmounted.

there are a few other things you can do such as disabling CPU Mitigations (which realistically most people won’t run into the issue its trying to prevent) and some kernel tweaks to disable more loggers and debugging among other things that can be changed but lets see how well this is received before I expand on it further.

  • cmsj@alien.topB
    link
    fedilink
    English
    arrow-up
    1
    ·
    1 year ago

    I’m curious how many of those systemd unit files you’ve actually read while making this list. By way of an example, the first one in your list is a oneshot service, ie it’s something that runs, exits and is never restarted. It’s going to make a tiny improvement to boot speed and nothing else.

    I’d suggest utilising the relevant systemd metrics tool to see if you’re actually going after targets that are worth it. These things are all installed/enabled for a reason and you’re risking weirdness down the road.

    https://www.freedesktop.org/software/systemd/man/latest/systemd-analyze.html