Reduce Disk Writes on Debian & Ubuntu (Server & Desktop)

Read the full article: Reduce Disk Writes on Debian & Ubuntu (Server & Desktop)

Every write to disk costs something, whether it’s wearing down an SSD, slowing I/O on a busy server, or draining battery on a laptop. One of the biggest offenders is logging. Between systemd-journald, web server access logs, and application-level logging, a default Debian 13 (Trixie) or Ubuntu 24.04 LTS system writes a lot to disk.… continue reading.
5 Likes

Thanks @hydn for this guide!
The only thing I was doing was clear journald logs once at week. Very useful post.

1 Like

This is a really great article! I run a lot of “servers” at home, which is mostly just a collection of hand-me-down hardware from previous jobs or friends and it is all “aging”. I just had two SSDs fail on me in the past six months.

While waiting for new SSDs to come in, I went through a similar exercise of finding “how long can I make this failing SSD last” by eliminating as many disk writes/reads as possible. I’m bookmarking this article for future needs of the same nature.

+1 for remounting without a reboot!
+1 browser cache to tmpfs, insanely cool idea
+1 for the journald changes

I’ll be implementing several of these on devices where I don’t need the extra logging but I do enjoy having logs on my servers (I just love logs… I’m weird)

Thanks for writing this up!

2 Likes

@benowe1717 Thanks for the detailed feedback! Except for my work PC, I generally buy dirt-cheap NVMe and SATA SSDs. That, and microSD card failures (Raspberry Pi) have brought me to my knees a few times! :melting_face:

2 Likes

Thought I’d give profile-sync-daemon a go. I’m reading though that it wants to employ $XDG_CONFIG_HOME, but that doesn’t seem to exist on Pi OS (when running Wayfire/Wayland).

Is anyone able to point me in the right direction on this?

1 Like

I believe that $XDG_CONFIG_HOME is the same as $HOME/.config on Debian/Ubuntu/Pi OS.

If that is true, then profile-sync-daemon should just use $HOME/.config without you having to define $XDG_CONFIG_HOME.

If it does not, you could try adding it to your ~/.bashrc for just your user or as a script in /etc/profile.d/ for any user on the machine.

I’ve not used this myself so I’m not speaking authoritatively, just theorizing based on the XDG Base Directory spec.

4 Likes

Thanks for that @benowe1717. At least running the thing seems to work fine:

$ systemctl --user status psd
● psd.service - Profile-sync-daemon
     Loaded: loaded (/usr/lib/systemd/user/psd.service; enabled; preset: enabled)
     Active: active (exited) since Thu 2026-04-16 23:23:13 BST; 8s ago
       Docs: man:psd(1)
             man:profile-sync-daemon(1)
             https://wiki.archlinux.org/index.php/Profile-sync-daemon
    Process: 12091 ExecStart=/bin/true (code=exited, status=0/SUCCESS)
   Main PID: 12091 (code=exited, status=0/SUCCESS)
        CPU: 1ms

Apr 16 23:23:13 raspberrypi5 systemd[1126]: Starting psd.service - Profile-sync-daemon...
Apr 16 23:23:13 raspberrypi5 systemd[1126]: Finished psd.service - Profile-sync-daemon.
4 Likes