Hi,

On Thu, 31 Jul 2025 13:38:45 +0000
MGD <[email protected]> wrote:

> Since this is an older machine, I want to make sure I’m configuring 
> things in a way that balances performance with functionality. In 
> particular, I was wondering if it’s possible to disable the display 
> manager and just log in via tty, bypassing the graphical login screen 
> entirely?

Yes but I'm unsure if this really has performance benefits.

In my case my main computer is a ThinkPad X200 (core 2 duo) with GNU
Boot and a 100% encrypted disk, and the following had a performance
impact:

- I use an SSD instead of an HDD. I didn't try to use a fast one but it
  is big. I'm unsure if a faster SSD really improves performance but
  using an SSD instead of an HDD does, even for compilation.

  If I used an HDD instead I would make sure that tracker/baloo isn't
  launched because that really kills the performance.

  I've also 8 GiB of RAM (the maximum). I'm unsure if 4GiB is
  enough, but 2 GiB is clearly not enough for my usage. I have a
  swap and don't need RAM compression.

  I mainly use Ethernet because I find it more convenient, but on this
  computer it is possible to replace the WiFi card (because it doesn't
  run the stock nonfree BIOS).

  So I replaced it with an ath9k compatible one: it works out of the
  box in Guix and the range and power consumption are better than with
  USB cards (like ath9k_htc compatible cards).

  Even if most ath9k compatible cards out there are 2.4 GHz only, cards
  compatible with ath9k that supports both 2.4 GHz and 5GHz also exist
  (ThinkPenguin sells some for instance). 5GHz USB cards compatible
  with free software don't exist. If you go to conferences and need
  WiFi there, having 5GHz is pretty much required as 2.4 GHz is often
  too crowded which makes it not work in practice (this is because its
  range is bigger than 5GHz). 5GHz is also faster.

- It is also possible to replace the Bluetooth cards with more recent
  ones, and someone gave me some cards to try but I didn't try them yet.

- I switched from Wayland to Xorg to get better performance with VLC,
  and there I made sure to use the XV acceleration (it improves
  performances when resizing videos). 

  The performance improvement is huge there. I can now view 1080p
  videos with that, and before I was limited to 720p. With Wayland
  mplayer is also faster than VLC but I also prefer VLC features in
  general.

- With software like yt-dlp I limit the resolution to save space,
  CPU and download time.

- The Guix manual is huge, so viewing it in one page on a web browser
  slows down a bit the rest of the computer, and it is usually not a
  big issue unless I've many things running at the same time (like a
  compilation going on + gajim + copying huge files + ...) so I
  usually use Emacs instead. Emacs can show pictures. You need to either
  change the key bindings of emacs or learn at least some basic key
  bindings for search for instance.

- Guix update is slow but manageable, so I usually run them the night.
  It is also possible to configure Guix to use offloading to another
  more powerful server (though I didn't try that, I also don't know if
  the server needs to be on all the time or not).[

- Using two displays seems to slow down the graphical interface a bit,
  but not enough to prevent the use of 2 displays. I didn't investigate
  if increasing the video RAM could help here.

- When working on software, I try to not waste resources too much. For
  instance if I have to integrate VMs as part of CI, I make sure to
  use the right options (-use-kvm, -cpu host, etc) and not reserve too
  much RAM for the VM.

- I also prefer to use chroots / libvirt-LXC than full blown VM when
  possible.

- I also don't have a childhurd service because I didn't find a way to
  disable it by default. But I have a build-vm service because it is
  off by default in my configuration.

- Huge file copy use CPU a lot, but for smaller files I probably don't
  see much a difference. This is because the rootfs is encrypted. 

- BTRFS probably uses a bit more CPU but I don't know how much, but I
  prefer it from my rootfs as 'cp --reflink=always' can copy huge
  files instantly if the copy happens in the same filesystem and
  subvolume, and I can also make chroots bootable with subvolumes.

- Some games like naev refuse to start the OpenGL version is too old
  (OpenGL 2.1) while other works fine.

Pain points:

- Gajim is very slow. I probably need to try to see if there are some
  alternatives with the features I need.

- Bisecting with Guix can be very frustrating, but this is also the
  case with a KGPE-D16. The lack of substitutes requires you to build
  things from scratch, including the toolchain, and there are often
  huge commits range to skip.

- I use claws-mail and I've a huge amount of mails, and also a big
  number of filters and if my inbox becomes too big, all that becomes
  too slow. I probably need to investigate how to improve the situation
  at some point (like move the filters in my local dovecot, look if
  there are better mail clients).

- Navit can be slow, but its speed increased with the latest git
  versions. It is still usable though. Here limiting the amount of
  information on the screen (like not displaying an icon for every
  shop when you are zoomed out too much) can help speed things up but I
  didn't spend time doing that yet.

Caveats:

- On this computer I don't allow websites to run arbitrary code on my
  computer so I have JavaScript disabled for remote websites. This
  probably improves performance a lot but not all website work. With
  some pages, they can work better if I use view->style->no style (in
  Firefox based browsers) to make hidden part of the page appear as
  sometimes things like menu are hidden by default and un-hidden by
  JavaScript.

  But I've also another ThinkPad X200 where this is not the case (that
  I use mostly for browsing websites with JavaScript) and there it
  works fine even without add-blocker (I use mainly the Tor Browser,
  and adding additional addons is considered dangerous as this could
  remove the anonymity).

Backups:

- Basically I was forced to make backups efficient for other reasons
  (more on why below).

  I use a separate ext4 partition (it's ext4 for better reliability)
  with all the data that is being backed up. I use GNU stow to generate
  the symlinks.

  I also use configuration management (either with Guix or with things
  like consfigurator or FAI when I use other distributions like
  Trisquel or PureOS). This is backed up in a public git repository and
  on software heritage.

  And I use remote git repositories for the things that I'm working on.
  and I back them up with software heritage with a custom tool I wrote
  (while it's public it needs more work to be generally useful).

  This enable me to only backup what I have in the separate ext4
  partition and this makes backup possible.

  Selecting what to backup resulted in me missing things. And
  backuping the full home was in-practical due to the amount of data to
  backup (at least 2 TiB) would make backups in-practical for my
  constraints (I also don't want other computers to be able to access
  the backup data, so it's encrypted and this rules out a backup system
  that continuously synchronize data with a server).

  For the software I mainly use rsync on a LUKS partition.

Slow network or no network:

- I also want to be able to work offline as much as possible for
  various reasons (like to be able to work in public transportation
  without concern for bandwidth or privacy (I can leave my smartphone
  at home)). 

  So for instance I've all my mails locally in a local dovecot server
  that also enable me to use Maildir with my current mail
  client (claws-mail).

  I've also many wiki locally and I use kiwix-serve to access these
  wikis. Note that while kiwix-serve is in Guix, there is no service
  yet for it so it is launched by a shepherd service that just runs a
  command.

Denis.

Attachment: pgpDAGwzVdlOm.pgp
Description: OpenPGP digital signature

Reply via email to