CachyOS System Tweaks - ryzendew/Linux-Tips-and-Tricks GitHub Wiki

CachyOS System Tweaks Guide

This guide covers various system tweaks and optimizations for CachyOS, including performance improvements, power management, system configuration, and useful customizations.


Table of Contents

  1. Performance Tweaks
  2. Power Management
  3. System Configuration
  4. Network Optimizations
  5. File System Optimizations
  6. Desktop Environment Tweaks
  7. Useful Customizations
  8. Troubleshooting Tweaks

Performance Tweaks

CPU Governor

Set CPU to performance mode:

# Install cpupower
sudo pacman -S cpupower

What this command does:

  • sudo: Administrator privileges (needed to install software)
  • pacman -S: Install package
  • cpupower: A tool for managing CPU frequency and power settings

What cpupower does:

  • Controls how fast your CPU runs
  • Manages CPU power consumption
  • Sets CPU "governor" (performance mode, power-saving mode, etc.)
# Set performance governor
sudo cpupower frequency-set -g performance

What this command does:

  • sudo: Administrator privileges (needed to change CPU settings)
  • cpupower frequency-set: Changes CPU frequency settings
  • -g performance: Sets the governor to "performance"
  • Governor: A policy that controls CPU speed
  • Performance: CPU runs at maximum speed all the time

What happens:

  • Your CPU will run at its maximum speed
  • Better performance, but uses more power
  • Good for gaming, video editing, compiling code
  • Not ideal for laptops on battery (drains battery faster)

Other governor options:

  • powersave: CPU runs at minimum speed (saves battery)
  • ondemand: CPU speeds up when needed, slows down when idle (balanced)
  • conservative: Similar to ondemand, but changes speed more gradually

Example output:

Setting cpu: 0
Setting cpu: 1
Setting cpu: 2
Setting cpu: 3

This means:

  • CPU governor was set for all CPU cores (0, 1, 2, 3 = 4 cores)
  • All cores are now in performance mode
# Check current governor
cpupower frequency-info

What this command does:

  • Shows current CPU frequency settings
  • Displays which governor is active
  • Shows CPU speed information

Example output:

analyzing CPU 0:
  driver: intel_pstate
  CPUs which run at the same hardware frequency: 0
  CPUs which need to have their frequency coordinated by software: 0
  maximum transition latency: 0.97 ms.
  hardware limits: 800 MHz - 4.20 GHz
  available cpufreq governors: performance powersave
  current policy: frequency should be within 800 MHz and 4.20 GHz.
                  The governor "performance" may decide which speed to use
                    within this range.
  current CPU frequency: 4.20 GHz (asserted by call to hardware)

Understanding the output:

  • hardware limits: Your CPU can run between 800 MHz and 4.20 GHz
  • available governors: Which modes are available (performance, powersave)
  • current policy: Shows the active governor (performance in this example)
  • current CPU frequency: Current speed (4.20 GHz = running at maximum)

What this tells you:

  • Performance mode is active
  • CPU is running at maximum speed (4.20 GHz)
  • Everything is working correctly

Make permanent:

# Create systemd service
sudo nano /etc/systemd/system/cpu-performance.service

Add:

[Unit]
Description=Set CPU to performance mode

[Service]
Type=oneshot
ExecStart=/usr/bin/cpupower frequency-set -g performance

[Install]
WantedBy=multi-user.target

Enable:

sudo systemctl enable --now cpu-performance

Alternative: Use ondemand (balanced):

sudo cpupower frequency-set -g ondemand

I/O Scheduler

Optimize I/O scheduler for your storage:

For SSDs:

# Use none or mq-deadline
echo mq-deadline | sudo tee /sys/block/sda/queue/scheduler

# Make permanent
echo 'ACTION=="add|change", KERNEL=="sd*", ATTR{queue/scheduler}="mq-deadline"' | sudo tee /etc/udev/rules.d/60-ioscheduler.rules

For HDDs:

# Use mq-deadline or bfq
echo mq-deadline | sudo tee /sys/block/sda/queue/scheduler

Swappiness

What is swappiness?

  • Swappiness: How aggressively Linux uses swap (virtual memory on disk)
  • Swap: Disk space used as virtual RAM when physical RAM is full
  • Swappiness value: 0-100 (how likely system is to use swap)
  • 0: Never use swap unless absolutely necessary
  • 60: Default (moderate swap usage)
  • 100: Aggressively use swap

Why reduce swappiness?

  • Swap is slow: Disk is much slower than RAM (100-1000x slower)
  • With enough RAM: You rarely need swap
  • Lower swappiness: System prefers RAM over swap (faster)

Reduce swap usage (if you have enough RAM):

# Check current swappiness
cat /proc/sys/vm/swappiness

What this command does:

  • cat: Displays file contents
  • /proc/sys/vm/swappiness: System file containing swappiness value
  • Shows current swappiness setting

Example output:

60

What this means:

  • Current swappiness is 60 (default)
  • System will start using swap when RAM is 60% full
  • This is moderate - not too aggressive, not too conservative
# Reduce swappiness (default is 60)
echo 'vm.swappiness=10' | sudo tee -a /etc/sysctl.conf

What this command does:

  • echo 'vm.swappiness=10': Creates the text "vm.swappiness=10"
  • |: Pipes output to next command
  • sudo tee -a /etc/sysctl.conf: Appends to system configuration file
  • tee: Writes to file
  • -a: Append (add to end of file, don't overwrite)
  • /etc/sysctl.conf: System configuration file for kernel parameters

What this setting does:

  • Sets swappiness to 10 (instead of default 60)
  • System will only use swap when RAM is 90% full (much less aggressive)
  • Prefers RAM over swap (faster performance)

Apply immediately:

sudo sysctl vm.swappiness=10

What this command does:

  • sysctl: Changes kernel parameters immediately
  • vm.swappiness=10: Sets swappiness to 10
  • Takes effect right away (no reboot needed)

Benefits:

  • Less disk I/O: System uses RAM instead of slower disk
  • Better performance: RAM is much faster than disk
  • Faster system response: No waiting for slow swap operations
  • Better for SSDs: Reduces wear on SSD (fewer writes)

When to use:

  • You have 8GB+ RAM: Lower swappiness is beneficial
  • You have 16GB+ RAM: Can set to 1 or 0 (almost never use swap)
  • You have 4GB or less RAM: Keep default 60 (you may need swap)

Recommended values:

  • 4GB RAM: 60 (default)
  • 8GB RAM: 10-20
  • 16GB+ RAM: 1-10
  • 32GB+ RAM: 0-1 (almost never swap)

Transparent Huge Pages

What are Transparent Huge Pages?

  • Huge Pages: Large memory pages (2MB instead of 4KB)
  • Transparent: System manages them automatically (you don't need to configure)
  • Benefit: Better performance for some applications (databases, virtualization)
  • Trade-off: Can cause latency spikes in some workloads

Why optimize this?

  • Default setting: "always" (aggressive, can cause issues)
  • Recommended: "madvise" (only use when applications request it)
  • Better for: Gaming, desktop use, general applications

Optimize memory management:

# Check current setting
cat /sys/kernel/mm/transparent_hugepage/enabled

What this command does:

  • cat: Displays file contents
  • /sys/kernel/mm/transparent_hugepage/enabled: System file showing THP setting
  • Shows current configuration

Example output:

always [madvise] never

Understanding the output:

  • Shows three options: always, madvise, never
  • [madvise] in brackets = current setting
  • always = always use huge pages (aggressive)
  • madvise = use when applications request (recommended)
  • never = never use huge pages
# Set to madvise (recommended)
echo madvise | sudo tee /sys/kernel/mm/transparent_hugepage/enabled

What this command does:

  • echo madvise: Creates the text "madvise"
  • | sudo tee: Writes to system file (requires admin privileges)
  • /sys/kernel/mm/transparent_hugepage/enabled: The file to write to
  • Sets THP to "madvise" mode

What "madvise" means:

  • System only uses huge pages when applications explicitly request them
  • Most applications don't request huge pages
  • Prevents automatic huge page allocation (which can cause latency)
  • Best balance between performance and responsiveness

Make permanent:

echo 'madvise' | sudo tee /etc/sysctl.d/99-hugepages.conf

What this command does:

  • Creates a configuration file that applies the setting at boot
  • /etc/sysctl.d/: Directory for system configuration files
  • 99-hugepages.conf: Configuration file name
  • System will read this file at boot and apply the setting

Why make it permanent:

  • /sys/ changes are temporary (reset on reboot)
  • /etc/sysctl.d/ changes are permanent (survive reboot)
  • Ensures setting persists after restart

Alternative: Use udev rule (more reliable):

# Create udev rule
echo 'SUBSYSTEM=="memory", ATTR{transparent_hugepage/enabled}="madvise"' | sudo tee /etc/udev/rules.d/99-hugepages.rules

What this does:

  • Creates a udev rule (device management rule)
  • Applies the setting when system initializes
  • More reliable than sysctl for this particular setting

Benefits of madvise:

  • Better responsiveness: No unexpected latency spikes
  • Better for gaming: Prevents stuttering
  • Better for desktop: Smoother experience
  • Still allows optimization: Applications that benefit can still request huge pages

Power Management

Laptop Power Saving

Install TLP (power management):

# Install TLP
sudo pacman -S tlp tlp-rdw

# Enable TLP
sudo systemctl enable --now tlp

Configure TLP:

# Edit TLP config
sudo nano /etc/tlp.conf

# Common settings:
# - CPU governor (powersave/performance)
# - CPU frequency limits
# - GPU power management
# - USB autosuspend

TLP commands:

# Check TLP status
sudo tlp-stat

# Set to battery mode
sudo tlp bat

# Set to AC mode
sudo tlp ac

CPU Frequency Scaling

For laptops, use ondemand governor:

# Set ondemand (balanced)
sudo cpupower frequency-set -g ondemand

# Or use powersave for battery
sudo cpupower frequency-set -g powersave

Graphics Power Management

NVIDIA power management:

# Enable persistence mode
sudo nvidia-smi -pm 1

# Set power limit
sudo nvidia-smi -pl 150  # Adjust as needed

AMD power management:

# Set power profile
echo high | sudo tee /sys/class/drm/card*/device/power_dpm_force_performance_level

System Configuration

System Limits

Increase system limits:

# Edit limits
sudo nano /etc/security/limits.conf

Add:

* soft nofile 65536
* hard nofile 65536
* soft nproc 65536
* hard nproc 65536

Benefits:

  • More file descriptors
  • Better for servers/development
  • Prevents "too many open files" errors

Kernel Parameters

Optimize kernel parameters:

# Edit sysctl
sudo nano /etc/sysctl.conf

Add optimizations:

# Network optimizations
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.ipv4.tcp_rmem = 4096 87380 16777216
net.ipv4.tcp_wmem = 4096 65536 16777216

# File system
fs.file-max = 2097152

# Virtual memory
vm.swappiness = 10
vm.vfs_cache_pressure = 50

Apply changes:

sudo sysctl -p

Service Management

Disable unnecessary services:

# List running services
systemctl list-units --type=service --state=running

# Disable service
sudo systemctl disable service-name

# Stop service
sudo systemctl stop service-name

Common services to disable (if not needed):

  • bluetooth (if not using Bluetooth)
  • cups (if not printing)
  • avahi-daemon (if not using network discovery)

Network Optimizations

TCP Optimizations

What is TCP?

  • TCP: Transmission Control Protocol
  • What it does: Ensures data is delivered correctly over the network
  • Used by: Web browsing, file transfers, most internet applications
  • Optimization: Adjusts how TCP handles network data for better performance

Why optimize TCP?

  • Default settings: Conservative (work everywhere but not optimal)
  • Optimized settings: Better for modern networks (faster, lower latency)
  • Benefits: Faster downloads, lower latency, better online gaming

Optimize TCP for better network performance:

# Edit sysctl
sudo nano /etc/sysctl.conf

What this does:

  • Opens the system configuration file for editing
  • sysctl.conf: Contains kernel parameters (system settings)
  • You'll add network optimization settings here

Add these lines to the file:

# TCP optimizations
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.ipv4.tcp_rmem = 4096 87380 16777216
net.ipv4.tcp_wmem = 4096 65536 16777216
net.ipv4.tcp_congestion_control = bbr
net.ipv4.tcp_fastopen = 3

What each setting does:

net.core.rmem_max = 16777216

  • rmem: Receive memory (buffer for incoming data)
  • max: Maximum size
  • 16777216: 16 megabytes (in bytes)
  • What it does: Allows larger buffers for receiving data (faster downloads)

net.core.wmem_max = 16777216

  • wmem: Write memory (buffer for outgoing data)
  • max: Maximum size
  • 16777216: 16 megabytes
  • What it does: Allows larger buffers for sending data (faster uploads)

net.ipv4.tcp_rmem = 4096 87380 16777216

  • tcp_rmem: TCP receive memory (three values: min, default, max)
  • 4096: Minimum buffer (4 KB)
  • 87380: Default buffer (85 KB)
  • 16777216: Maximum buffer (16 MB)
  • What it does: TCP can use buffers from 4KB to 16MB for receiving

net.ipv4.tcp_wmem = 4096 65536 16777216

  • tcp_wmem: TCP write memory (three values: min, default, max)
  • 4096: Minimum buffer (4 KB)
  • 65536: Default buffer (64 KB)
  • 16777216: Maximum buffer (16 MB)
  • What it does: TCP can use buffers from 4KB to 16MB for sending

net.ipv4.tcp_congestion_control = bbr

  • tcp_congestion_control: Algorithm that controls how TCP sends data
  • bbr: Bottleneck Bandwidth and Round-trip propagation time
  • What it does: Modern algorithm that improves throughput and reduces latency
  • Benefit: Better performance on modern networks (especially high-speed)

net.ipv4.tcp_fastopen = 3

  • tcp_fastopen: Allows sending data in the initial connection handshake
  • 3: Enable for both client and server
  • What it does: Reduces connection time (faster page loads)
  • Benefit: Web pages load faster

Apply changes:

sudo sysctl -p

What this command does:

  • sysctl -p: Load settings from /etc/sysctl.conf
  • Applies all the settings you just added
  • Takes effect immediately (no reboot needed)

Example output:

net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.ipv4.tcp_rmem = 4096 87380 16777216
net.ipv4.tcp_wmem = 4096 65536 16777216
net.ipv4.tcp_congestion_control = bbr
net.ipv4.tcp_fastopen = 3

What this means:

  • All settings were applied successfully
  • Network optimizations are now active
  • You should see improved network performance

If you see errors:

  • Check that you typed the settings correctly
  • Make sure there are no typos
  • Verify the file was saved properly
  • Try running sudo sysctl -p again

Note about BBR:

  • BBR requires kernel 4.9+ (CachyOS has this)
  • If BBR isn't available, system will use default (cubic)
  • You can check available algorithms: sysctl net.ipv4.tcp_available_congestion_control

DNS Configuration

What is DNS?

  • DNS: Domain Name System
  • What it does: Converts website names (like "google.com") to IP addresses (like "142.250.191.14")
  • Why it matters: Every website visit requires DNS lookup
  • Faster DNS: Websites load faster, less waiting

Why change DNS?

  • ISP DNS: Often slow, may log your activity
  • Public DNS: Faster, more reliable, better privacy
  • Examples: Cloudflare (1.1.1.1), Google (8.8.8.8)

Use faster DNS servers:

Method 1: Edit resolv.conf (if not using systemd-resolved)

# Edit resolv.conf
sudo nano /etc/resolv.conf

What this file does:

  • Contains DNS server addresses
  • System reads this to know which DNS servers to use
  • May be overwritten by NetworkManager (see Method 2)

Add or replace nameserver lines:

nameserver 1.1.1.1
nameserver 8.8.8.8

What these are:

  • 1.1.1.1: Cloudflare DNS (fast, privacy-focused)
  • 8.8.8.8: Google DNS (fast, reliable)

Method 2: Use systemd-resolved (recommended)

# Edit resolved config
sudo nano /etc/systemd/resolved.conf

What systemd-resolved does:

  • Modern DNS management system
  • Better integration with systemd
  • More reliable than editing resolv.conf directly

Find the [Resolve] section and add/modify:

[Resolve]
DNS=1.1.1.1 8.8.8.8
FallbackDNS=1.0.0.1 8.8.4.4

What each setting does:

  • DNS=: Primary DNS servers (used first)
  • 1.1.1.1: Cloudflare DNS (primary)
  • 8.8.8.8: Google DNS (secondary)
  • FallbackDNS=: Backup DNS servers (used if primary fails)
  • 1.0.0.1: Cloudflare backup
  • 8.8.4.4: Google backup

Why have multiple DNS servers?

  • Redundancy: If one fails, others are used
  • Load balancing: System can use different servers
  • Reliability: Ensures DNS always works

Restart systemd-resolved:

sudo systemctl restart systemd-resolved

What this command does:

  • systemctl restart: Restarts a system service
  • systemd-resolved: The DNS resolution service
  • Applies new DNS settings immediately

Verify DNS is working:

# Test DNS resolution
nslookup google.com

What this command does:

  • nslookup: Tests DNS lookup
  • google.com: Domain to look up
  • Shows if DNS is working

Example output:

Server:		1.1.1.1
Address:	1.1.1.1#53

Non-authoritative answer:
Name:	google.com
Address: 142.250.191.14

What this tells you:

  • Server: DNS server being used (1.1.1.1 = Cloudflare)
  • Address: IP address of google.com (DNS lookup worked)
  • DNS is configured correctly

Alternative: Use NetworkManager (GUI method)

  • Open NetworkManager settings
  • Edit your connection
  • Go to IPv4 or IPv6 settings
  • Change DNS servers to: 1.1.1.1, 8.8.8.8
  • Save and reconnect

Popular DNS servers:

  • Cloudflare: 1.1.1.1, 1.0.0.1 (fast, privacy-focused)
  • Google: 8.8.8.8, 8.8.4.4 (fast, reliable)
  • Quad9: 9.9.9.9, 149.112.112.112 (security-focused)
  • OpenDNS: 208.67.222.222, 208.67.220.220 (reliable)

NetworkManager Tweaks

Optimize NetworkManager:

# Edit NetworkManager config
sudo nano /etc/NetworkManager/conf.d/00-optimize.conf

Add:

[connection]
wifi.powersave = 2  # Disable WiFi power saving

Restart:

sudo systemctl restart NetworkManager

File System Optimizations

Mount Options

Optimize mount options:

# Edit fstab
sudo nano /etc/fstab

What this does:

  • sudo: Administrator privileges (needed to edit system files)
  • nano: Text editor (beginner-friendly)
  • /etc/fstab: File system table - tells Linux how to mount disks
  • fstab: File System TABle
  • Contains information about all disks and how to mount them
  • Read by system during boot

What you'll see:

  • A file with lines like:
# /etc/fstab: static file system information
UUID=xxxx-xxxx-xxxx / ext4 defaults 0 1
UUID=yyyy-yyyy-yyyy /home ext4 defaults 0 2

Understanding fstab format: Each line has 6 fields separated by spaces:

  1. Device/UUID: What to mount (disk or partition)
  2. Mount point: Where to mount it (directory path)
  3. File system: Type (ext4, btrfs, etc.)
  4. Options: How to mount it (defaults, noatime, etc.)
  5. Dump: Backup flag (usually 0)
  6. Pass: Filesystem check order (0=don't check, 1=root, 2=others)

For ext4 (SSD):

UUID=xxxx-xxxx / ext4 defaults,noatime,discard 0 1

What each part means:

  • UUID=xxxx-xxxx: Your disk's unique identifier
  • UUID: Universally Unique Identifier
  • Find with: lsblk -f or blkid
  • /: Mount point (root filesystem)
  • ext4: File system type
  • defaults,noatime,discard: Mount options
  • defaults: Standard options (read-write, etc.)
  • noatime: Don't update access times (faster, less disk writes)
  • discard: Enable TRIM for SSDs (keeps SSD fast)
  • 0: Don't backup with dump
  • 1: Check this filesystem first during boot

For ext4 (HDD):

UUID=xxxx-xxxx / ext4 defaults,noatime 0 1

Differences from SSD:

  • No discard option (HDDs don't need TRIM)
  • Otherwise same as SSD version

For btrfs:

UUID=xxxx-xxxx / btrfs defaults,noatime,compress=zstd 0 1

What's different:

  • btrfs: Btrfs file system (instead of ext4)
  • compress=zstd: Enable compression using zstd algorithm
  • Compression: Reduces file size, saves disk space
  • zstd: Fast compression algorithm
  • Benefit: More storage space, slightly slower writes

Options explained in detail:

  • noatime: Don't update access times

  • What it means: Linux normally updates a timestamp every time you access a file

  • With noatime: Skips this update

  • Benefit: Faster file access, less disk writes

  • Trade-off: Can't see when files were last accessed (usually not important)

  • discard: TRIM for SSDs

  • What it means: Tells SSD which blocks are no longer used

  • Why needed: SSDs need to know what space is free to maintain performance

  • Benefit: Keeps SSD fast over time

  • Only for: SSDs (don't use on HDDs)

  • compress=zstd: Compression for btrfs

  • What it means: Files are compressed before being written to disk

  • Benefit: Saves disk space (often 20-50% space savings)

  • Trade-off: Slightly slower writes, faster reads (compressed data is smaller)

  • Best for: Files that compress well (text, code, some media)

** Important warnings:**

  • Backup fstab before editing: sudo cp /etc/fstab /etc/fstab.backup
  • One mistake can prevent boot: Be very careful with syntax
  • Test changes: After editing, test with: sudo mount -a (mounts all filesystems)
  • If mount -a fails: Fix the error before rebooting!

How to find your UUID:

# List all disks with UUIDs
lsblk -f

# Or
blkid

Example output:

NAME   FSTYPE LABEL UUID                                 MOUNTPOINT
sda1   ext4        550e8400-e29b-41d4-a716-446655440000 /
sda2   ext4        660e8400-e29b-41d4-a716-446655440000 /home

Use the UUID (the long string of numbers and letters) in your fstab file.

TRIM for SSDs

Enable automatic TRIM:

# Enable fstrim service
sudo systemctl enable --now fstrim.timer

Manual TRIM:

# TRIM all mounted filesystems
sudo fstrim -av

Disk I/O Priority

Set I/O priority for processes:

# Use ionice
ionice -c 1 -n 0 command  # Real-time I/O
ionice -c 2 -n 4 command  # Best-effort, low priority

Desktop Environment Tweaks

KDE Plasma

Performance tweaks:

  • System Settings → Display and Monitor → Compositor
  • Set "Rendering backend" to "OpenGL 3.1"
  • Disable "Allow applications to block compositing" (for gaming)

Animation speed:

  • System Settings → Workspace Behavior → General Behavior
  • Adjust animation speed

GNOME

Disable animations:

# Install GNOME Tweaks
sudo pacman -S gnome-tweaks

# Or use gsettings
gsettings set org.gnome.desktop.interface enable-animations false

Extensions:

  • Install extension manager
  • Disable unnecessary extensions

i3 Window Manager

Optimize i3:

# Edit i3 config
nano ~/.config/i3/config

Performance options:

# Disable title bars (faster)
new_window 1pixel

# Reduce gaps
gaps inner 5
gaps outer 5

Useful Customizations

Shell Configuration

Optimize bash/zsh:

# Edit .bashrc or .zshrc
nano ~/.bashrc

Add aliases:

# Useful aliases
alias ll='ls -lah'
alias update='sudo pacman -Syu'
alias clean='sudo pacman -Sc'

Terminal Configuration

Use faster terminal:

  • Alacritty (GPU-accelerated)
  • Kitty (fast and feature-rich)
  • Foot (Wayland terminal)

Install:

sudo pacman -S alacritty

Font Configuration

Install better fonts:

# Install fonts
sudo pacman -S ttf-dejavu ttf-liberation noto-fonts

Configure font rendering:

# Edit font config
sudo nano /etc/fonts/local.conf

Mirror Optimization

Optimize package mirrors:

# Install reflector
sudo pacman -S reflector

# Update mirrorlist
sudo reflector --country "United States" --latest 10 --sort rate --save /etc/pacman.d/mirrorlist

Or use CachyOS tool:

sudo cachyos-rate-mirrors

Troubleshooting Tweaks

Fix Slow Boot

Identify slow services:

# Check boot time
systemd-analyze

# Check slow services
systemd-analyze blame

# Disable slow services
sudo systemctl disable slow-service

Fix Slow Application Startup

Preload frequently used applications:

# Install preload
sudo pacman -S preload

# Enable preload
sudo systemctl enable --now preload

Fix Memory Issues

Check memory usage:

# Check memory
free -h

# Check what's using memory
ps aux --sort=-%mem | head

Clear caches (if needed):

# Clear page cache
sudo sync && sudo sysctl vm.drop_caches=1

Fix Disk I/O Issues

Check disk I/O:

# Install iotop
sudo pacman -S iotop

# Monitor I/O
sudo iotop

Identify I/O bottlenecks:

# Check I/O wait
top  # Look for %wa (wait)

Additional Resources


Summary

This guide covered:

  1. Performance tweaks - CPU, I/O, memory optimizations
  2. Power management - Laptop power saving, CPU scaling
  3. System configuration - Limits, kernel parameters, services
  4. Network optimizations - TCP, DNS, NetworkManager
  5. File system optimizations - Mount options, TRIM, I/O priority
  6. Desktop environment tweaks - KDE, GNOME, i3 optimizations
  7. Useful customizations - Shell, terminal, fonts, mirrors
  8. Troubleshooting tweaks - Fix slow boot, memory, I/O issues

Key Takeaways:

  • Performance tweaks improve system responsiveness
  • Power management extends battery life on laptops
  • Network optimizations improve connection speed
  • File system tweaks improve disk performance
  • Desktop environment tweaks reduce resource usage
  • Customizations improve user experience
  • Troubleshooting tweaks fix common issues

Important Notes:

  • Test tweaks before making permanent
  • Some tweaks may affect stability
  • Backup before major changes
  • Not all tweaks work for all systems
  • Monitor system after applying tweaks

This guide is based on the CachyOS Wiki and expanded with detailed explanations for beginners. For the most up-to-date system tweaks, always refer to the official CachyOS documentation.