Useful tweaks for older hardware on Arch Linux

I’ve been experimenting with Arch Linux on older hardware for quite a while, and these are the tweaks that have consistently given me the best balance between responsiveness, memory efficiency, and overall system usability.

Memory Management

Enable zram

The single biggest improvement for low-RAM systems.

ArchWiki suggests starting with a zram device equal to approximately 50% of physical RAM using the zstd compression algorithm. However, many Linux users running older hardware choose larger zram sizes, especially on systems with 1–4 GB RAM.

Common starting points used by Linux users:

RAM Common ZRAM Size
1 GB 1 GB
2 GB 2 GB
4 GB 2–4 GB
8 GB 4 GB
16 GB 8 GB
32 GB 8–16 GB

Example:

[zram0]
zram-size = ram / 2
compression-algorithm = zstd

Compression Algorithm

The compression algorithm you choose can make a noticeable difference, especially on older hardware.

The two most common choices are zstd and lz4.

Algorithm Compression Speed Compression Ratio CPU Usage
lz4 Very Fast Lower Very Low
zstd Fast Higher Slightly Higher

In general:

  • zstd provides better compression ratios, allowing more data to remain in compressed RAM before the system needs to use disk-based swap.
  • lz4 provides lower CPU overhead and extremely fast compression and decompression speeds.

For older systems with weak CPUs, I generally recommend:

compression-algorithm = lz4

Examples:

  • Old Intel Atom
  • Intel Pentium 4
  • Intel Core Solo / Duo
  • Early Core 2 Duo systems
  • Older AMD Athlon systems

These processors often benefit more from lower CPU overhead than from the additional compression provided by zstd.

For newer systems, I generally recommend:

compression-algorithm = zstd

Examples:

  • Intel Core i-series
  • AMD Ryzen
  • Modern Xeon systems
  • Modern laptop CPUs

These processors usually have more than enough CPU performance to handle zstd efficiently while benefiting from its improved compression ratio.

Keep a swap file

Even with zram enabled, I still recommend having a disk-based swap file as a fallback.

These are community-tested values rather than official recommendations.

RAM Swap File
1 GB 2 GB
2 GB 2 GB
4 GB 2 GB
8 GB 2–4 GB
16 GB 4–6 GB
32 GB+ Optional

A swap file is especially useful as an emergency buffer when RAM and zram become full.

vm.swappiness

A lot of users still use values like 10 or 20.

However, when zram is being used, higher values can be beneficial because compressed RAM swap is significantly faster than disk-based swap.

ArchWiki currently provides tuning examples that use a swappiness value of 180 for zram-based systems.

Setup Typical vm.swappiness
HDD + swapfile 10-20
SSD + swapfile 20-60
ZRAM enabled 100-180

The Linux kernel default is 60.

For systems using zram, values above 100 are often beneficial because compressed RAM swap is significantly faster than disk-based swap. ArchWiki currently includes an example using vm.swappiness=180 for zram-based systems.

Example:

sudo sysctl vm.swappiness=180

Permanent:

echo "vm.swappiness=180" | sudo tee /etc/sysctl.d/99-swappiness.conf

vm.vfs_cache_pressure

Default:

100

Personally, I prefer:

50

Example:

echo "vm.vfs_cache_pressure=50" | sudo tee /etc/sysctl.d/99-cache-pressure.conf

This allows the kernel to retain filesystem cache longer and can improve responsiveness on slower storage devices.

Disable zswap when using zram

If zram is your primary memory optimization method, disabling zswap can avoid unnecessary overhead and simplify the memory path.

Check whether zswap is enabled:

cat /sys/module/zswap/parameters/enabled

Output:

Y

means zswap is enabled.

N

To disable zswap permanently, add the following kernel parameter:

zswap.enabled=0

For GRUB users:

Edit:

/etc/default/grub

Find:

GRUB_CMDLINE_LINUX_DEFAULT="..."

Add:

zswap.enabled=0

Example:

GRUB_CMDLINE_LINUX_DEFAULT="quiet zswap.enabled=0"

Regenerate the GRUB configuration:

sudo grub-mkconfig -o /boot/grub/grub.cfg

Then reboot the system.

After rebooting, verify:

cat /sys/module/zswap/parameters/enabled

Expected output:

N

Storage Optimization

HDD users: try mq-deadline

Check current scheduler:

cat /sys/block/sda/queue/scheduler

I usually prefer:

mq-deadline

on traditional spinning disks because it often provides smoother responsiveness.

HDD read-ahead tuning

Check current value:

blockdev --getra /dev/sda

Some HDD users may benefit from increasing read-ahead values.

Example:

sudo blockdev --setra 2048 /dev/sda

Results vary depending on workload and storage hardware.

Keep free disk space available

Older HDDs become noticeably slower when nearly full.

I try to keep at least 15–20% free space whenever possible.

SSD users

Enable periodic TRIM:

sudo systemctl enable --now fstrim.timer

Pacman Optimization

Enable parallel downloads.

Edit:

/etc/pacman.conf

Set:

ParallelDownloads = 5

For faster internet connections:

ParallelDownloads = 10

Also keep mirrors updated regularly.


Boot Optimization

Find slow services:

systemd-analyze blame

View total boot time:

systemd-analyze

Review enabled services:

systemctl list-unit-files --state=enabled

Common services that some users may not need:

  • bluetooth.service
  • cups.service
  • ModemManager.service
  • Desktop-environment-specific services you do not use

Only disable services that are genuinely unnecessary for your setup.


Desktop Environment Choices

For older hardware, desktop choice matters more than many kernel tweaks.

Good options:

  • LXQt
  • XFCE
  • MATE
  • IceWM
  • Openbox

In my experience, XFCE provides the best balance between features and resource usage.


Browser Optimization

Modern browsers are often the biggest performance bottleneck on older hardware.

Whether you use Firefox, Brave, Chromium, or another browser, these practices usually help:

  • Use an ad blocker (uBlock Origin is highly recommended where available)
  • Limit unnecessary extensions
  • Avoid dozens of open tabs
  • Use one browser instead of multiple simultaneously
  • Verify that hardware acceleration is working
  • Disable background applications you do not need

Many performance issues blamed on Linux are actually browser-related rather than operating-system-related.


Monitoring Tools

Useful commands:

htop
btop
free -h
iotop
journalctl -p 3 -xb
journalctl -xe

These tools make troubleshooting significantly easier.


My Preferred Configuration for a Old CPU, 2 GB RAM, and HDD System

RAM: 2 GB
ZRAM: 2 GB
Compression: lz4
Swapfile: 2 GB
vm.swappiness: 180
vm.vfs_cache_pressure: 50
Scheduler: mq-deadline
Desktop: XFCE
ParallelDownloads: 5
TRIM: N/A (HDD)

This setup has provided the best balance between responsiveness and memory efficiency for me on older hardware.

What tweaks have made the biggest difference on your older Arch Linux systems?

11 Likes

Thank you, Marcel! Lots to digest and experiment with.

BTW, love the new Avatar! Any significance that you would be willing to share with us?

I seems like a North-pointing compass in an electronic world. :slight_smile:

3 Likes

Haha, if you pay close attention, there is a hidden meaning.

• The Divine Center / Axis Mundi: At the exact center of the coordinate system (0,0), an absolute radiant white point is intersected by a perfectly vertical axis. This element symbolizes God, the Source of All Sources, the Constant Point, and Absolute Truth. The vertical line represents the transcendental connection between humanity below and the Creator above. Two blue points positioned on the left and right symbolize the dualities of existence—good and evil, logic and intuition—brought into harmony through spiritual balance.

• The Matrix of Life (Blue–Purple Vesica Piscis): The central eye-like vertical form is derived from the sacred geometry of the Vesica Piscis, created by the intersection of two perfect circles. It represents the origin of life, the act of creation, the bridge between the spiritual and material realms, and the foundation from which science and technology emerge through the mathematical principles embedded within the universe.

• The Crown / North Arrow: The former upward-pointing arrow has been reimagined as a Fractal Golden Crown extending toward the heavens. It symbolizes the highest aspirations of humanity, honor, wisdom, and spiritual leadership, while simultaneously functioning as a North Compass Arrow that signifies a clear sense of direction guided by higher values and divine principles.

• Rust Developer Identity & Memory Safety: Rather than displaying the Rust logo directly, the design incorporates an abstract Rust-inspired gear system composed of precision-engineered segmented rings rendered in a signature orange gradient (#B7410E to #F47C36). The dual-ring structure and segmented geometry symbolize resilient systems engineering, type safety, memory safety, and a commitment to high-level software architecture and craftsmanship.

• Community & Helper Circle: The outermost ring is formed by an emerald-green gradient enhanced with a subtle luminous glow. Green represents growth, vitality, healing, and positive contribution. Four nodes positioned along the primary axes symbolize interconnected human networks and collaborative ecosystems. This element reinforces an identity centered on guidance, stewardship, community support, and the cultivation of balanced, inclusive, and sustainable environments.

4 Likes

Sorry, this Made by AI, I can’t explain the full meaning, I just remember I made that avatar photo for representing my core identity as a Rust developer and a dedicated community helper, where every geometric line holds a specific meaning about life, balance, and the Divine source, but I can’t explain in great detail

3 Likes

Glad we have new arch tinker user to the forums @Jakarta2 thanks for sharing your tweaks.

3 Likes

I absolutely love it when Avatars project such deep symbolism! Much of what you outlined there resonates (all except the Rust, which I know nothing about)!

My only previous avatar was this:

which I had adopted to symbolize the unexpected explorer adventuring into space, real and virtual, eyes showing eagerness and wonder at all perceived!

I might revert to that at some point. Current one was an experiment in AI “cartooning” from an actual photo, which is discussed with various options in this old post on the now defunct UbuntuMATE Discourse.

4 Likes

Haha fair enough! As a Rust developer, I might be a bit biased because I love memory safety and zero-cost abstractions, which is why that stable gear structure felt so right for the design.

By the way, I absolutely love your cat astronaut avatar! An unexpected explorer filled with eagerness and wonder perfectly captures the true spirit of Linux and open-source. Thanks for sharing that!

3 Likes

Haha, if you pay close attention, there is a hidden meaning.

• The Divine Center / Axis Mundi: At the exact center of the coordinate system (0,0), an absolute radiant white point is intersected by a perfectly vertical axis. This element symbolizes God, the Source of All Sources, the Constant Point, and Absolute Truth. The vertical line represents the transcendental connection between humanity below and the Creator above. Two blue points positioned on the left and right symbolize the dualities of existence—good and evil, logic and intuition—brought into harmony through spiritual balance.

• The Matrix of Life (Blue–Purple Vesica Piscis): The central eye-like vertical form is derived from the sacred geometry of the Vesica Piscis, created by the intersection of two perfect circles. It represents the origin of life, the act of creation, the bridge between the spiritual and material realms, and the foundation from which science and technology emerge through the mathematical principles embedded within the universe.

• The Crown / North Arrow: The former upward-pointing arrow has been reimagined as a Fractal Golden Crown extending toward the heavens. It symbolizes the highest aspirations of humanity, honor, wisdom, and spiritual leadership, while simultaneously functioning as a North Compass Arrow that signifies a clear sense of direction guided by higher values and divine principles.

• Rust Developer Identity & Memory Safety: Rather than displaying the Rust logo directly, the design incorporates an abstract Rust-inspired gear system composed of precision-engineered segmented rings rendered in a signature orange gradient (#B7410E to #F47C36). The dual-ring structure and segmented geometry symbolize resilient systems engineering, type safety, memory safety, and a commitment to high-level software architecture and craftsmanship.

• Community & Helper Circle: The outermost ring is formed by an emerald-green gradient enhanced with a subtle luminous glow. Green represents growth, vitality, healing, and positive contribution. Four nodes positioned along the primary axes symbolize interconnected human networks and collaborative ecosystems. This element reinforces an identity centered on guidance, stewardship, community support, and the cultivation of balanced, inclusive, and sustainable environments.

3 Likes

Thank you. I spend a lot of time exploring Linux internals and building software with Rust, so communities like this are always a great place to exchange ideas and learn from others. Glad to be here.

4 Likes

BTW, my university degree is in Mechanical Engineering (McGill, '80), worked in aerospace ( Pratt & Whitney manufacturing Sheet-Metal Process Planning and CNC R&D ), but then moved into IT for CAD/CAM at Nortel for 16 years, and I’ve crudely dabbled in geodesics, with the Google Geodesic Help Group.

3 Likes

Wow, that is an incredibly impressive background, Eric! It’s an honor to connect with someone who has such deep expertise in aerospace, CNC, and CAD/CAM systems.

Knowing your background in mechanical engineering and geodesics, it completely makes sense why you instantly recognized the geometric patterns and the ‘compass’ structure in the design. Geodesics and sacred geometry share so much of the same mathematical beauty.

Looking forward to exchanging more ideas with you here!

3 Likes

Looking at Michaelangelo’s drawings might do that to you! :slight_smile:

Did I mention that I have read the “Templar” series by Jack Whyte, along with all the other books that he has published?

I’ve also read

I am almost, but not quite, a fanatic about King Arthur. :slight_smile:

3 Likes

That is a fascinating perspective, Eric! Michelangelo’s geometry and the code of the Templars or King Arthur share that exact same core. It is all about discovering order, truth, and a higher purpose through precise structure.

It is amazing how those ancient concepts of a quest still apply today. Whether we are planning structural engineering processes or writing software, the pursuit of mastery and craftsmanship remains identical. It is a pleasure discussing this with you!

3 Likes

Same perspectives and sentiments from here!

Values and moral “compass” are missing in the world!

4 Likes

Depends how old of hardware we’re talking. If we’re talking 256 MB RAM and an Intel Pentium III (800 MHz), it might be worth considering the 32-bit architecture (i486, i686) with Arch Linux 32, a community project.

I just have a “retro” PC that feels like it has modern software again - all console (CLI) based, as minimum as possible, browsing the web in its glory with w3m, or by summoning X11 (no DE) on demand. Felt snappier under Arch Linux 32 then it did with Debian 12-13 which do support i386.

These are good tips though!

4 Likes

Wow, that’s so old

The old hardware I mean is old Intel Atom, Core2Duo, and low end 64 bit CPU, 1gb ram, If it’s a Pentium III, or 256mb of RAM, that’s very old in today’s era, Tweak, and WM/Distro choices become more stringent if the target is Pentium III and 256mb ram

2 Likes

at this point
use non systemd distro & very lightweight one such ( antixlinux )
I don’t think 256 mb ram on arch 32 is good idea.

4 Likes

You would be surprised :grin:

In 2003 I assembled a narrowcasting system for a theater for cheap.

Motherboard was a low cost Via EPIA with a 600MHz onboard Via EDEN processor which was a 32-bit CPU, more or less comparable (and compatible) to a Pentium II. With 256MB RAM it had more than enough to fulfill its purpose.

The board was not antique or something, it was brand new. The reason it was so low specced was to be highly energy efficient. The powerconsumption was 5 watt at most.

b.t.w. It ran 24/7 up to the moment the theater had to move to another location and the board was decommissioned. That is 18 or 19 years almost non-stop.

The software was, ofcourse, lightweight:
Debian, no desktop, only a bare Xorg, a very lightweight browser as display engine (Qupzilla), and a very tiny http-server written in only a few lines of bash that was responsible for listening to the remote control.
(in other words, 128MB RAM would also have been plenty :face_with_hand_over_mouth: )

I still have that board (and its spare twin). I’m going to check how well Arch Linux 32 will run on it :grin:
Thanks for the tip @lah7 :+1:

5 Likes