Linux Running Slow

Your system feels sluggish, laggy, or unresponsive? Don't panic. There's almost always a simple explanation, and most fixes take just a few minutes.

Take a breath. A slow Linux system doesn't mean something is broken. Usually it's just one program misbehaving, or your system needs a quick cleanup. We'll walk through everything step by step.

Step 1: Check What's Using Your Resources

Before you can fix the problem, you need to see what's actually going on. Think of this like opening Task Manager on Windows — you want to see which programs are hogging your computer.

Option A: System Monitor (graphical)

Most Linux desktops come with a built-in system monitor. It looks like Task Manager and works the same way:

Click the "Processes" tab and sort by CPU or memory usage. If one program is using a huge percentage, you've probably found your culprit.

Option B: htop in the terminal

If you want more detail (or you're comfortable with the terminal), htop is an amazing tool. It shows everything running on your system in a color-coded, easy-to-read layout.

# Install htop if you don't have it
sudo apt install htop     # Ubuntu, Mint, Debian
sudo dnf install htop     # Fedora
sudo pacman -S htop       # Arch, Manjaro

# Run it
htop

Here's how to read htop without getting overwhelmed:

What to look for

ResourceHow to checkWarning signs
CPUCPU% column in htop, or the CPU bars at the topOne or more cores stuck at 100% for a long time
RAMMEM bar in htop, or run free -hMemory bar nearly full with little "available" memory left
Disk I/ORun iotop (may need to install it)A process doing constant heavy reads/writes

Common Causes and Fixes

A runaway process eating CPU

Sometimes a program gets stuck in a loop and eats all your CPU. You'll notice your fans spinning up and everything getting sluggish. This is the most common cause of sudden slowdowns.

Fix: Find the process in htop (sort by CPU with P) and kill it:

# In htop: select the process, press F9, choose 15 (SIGTERM), press Enter

# Or from any terminal, if you know the process name:
killall firefox           # Politely ask it to close
killall -9 firefox        # Force kill it (use if the above doesn't work)
Don't recognize the process? Before killing something unfamiliar, do a quick web search for the process name. It might be a system service that's supposed to be running. That said, no single process should be sitting at 100% CPU for minutes on end.

Running out of RAM

When your computer runs out of physical memory (RAM), it starts using "swap" — a chunk of your hard drive that pretends to be RAM. Swap is much slower than real RAM, so everything grinds to a halt.

# Check your memory situation
free -h

# You'll see something like:
#               total   used   free   shared  buff/cache  available
# Mem:          7.7Gi   5.2Gi  512Mi  256Mi   2.0Gi       2.1Gi
# Swap:         2.0Gi   1.5Gi  512Mi

If "available" memory is very low (under a few hundred MB) and swap is heavily used, you're running out of RAM.

Fix:

Too many startup apps

If your system is slow right after booting, too many programs might be launching automatically. Just like on Windows, apps love to add themselves to startup.

Fix: Disable unnecessary startup applications:

Go through the list and disable anything you don't need right at boot. You can always re-enable them later.

Disk is full

A nearly-full disk can make your whole system crawl, especially if there's no room for swap or temporary files. Things get really weird when you're under 5% free space.

# Check disk usage
df -h

# Look at the "Use%" column for your main partition (usually mounted at /)
# If it's above 90-95%, you need to free up space

Fix: See the per-distro cleanup commands section below for specific commands. Quick wins:

# Find the biggest directories eating your space
du -sh ~/* | sort -rh | head -20

# Find large files (over 500MB)
find / -type f -size +500M 2>/dev/null

Wrong GPU drivers (especially NVIDIA)

If your desktop feels sluggish, animations are choppy, or videos stutter, you might be running on the wrong graphics driver. This is especially common with NVIDIA cards, which need proprietary drivers to work properly on Linux.

# Check which GPU driver you're using
glxinfo | grep "OpenGL renderer"

# If it says "llvmpipe" or "software rasterizer", you're NOT using your GPU
# That means everything is being rendered by your CPU, which is very slow

Fix: Install the proper drivers for your GPU. See our NVIDIA driver guide for detailed instructions. For AMD and Intel GPUs, the open-source drivers usually work out of the box.

Browser eating all your RAM

Modern web browsers are memory monsters. Each tab can use hundreds of megabytes of RAM. If you're the kind of person who keeps 30+ tabs open, your browser alone might be eating most of your memory.

Fix:

Old or slow hardware

If your computer is older (say, under 4 GB of RAM or a very old CPU), a full-featured desktop like GNOME or KDE might be asking too much of it. The good news: Linux gives you the freedom to pick a lighter desktop environment that can breathe life into old hardware.

Fix: Switch to a lighter desktop environment:

DesktopRAM usage (idle)Best for
GNOME~1.0–1.5 GBModern hardware (8 GB+ RAM)
KDE Plasma~600–900 MBSurprisingly efficient for what you get
Cinnamon~600–800 MBMid-range hardware
XFCE~400–500 MBOlder hardware (4 GB RAM)
LXQt~300–400 MBVery old hardware (2 GB RAM)

You can install a new desktop environment alongside your current one and choose it from the login screen. No need to reinstall your whole system.

# Example: install XFCE on Ubuntu
sudo apt install xfce4

# Example: install LXQt on Fedora
sudo dnf install @lxqt-desktop-environment

Deep Dives

Swap and swappiness explained

What is swap? Swap is a section of your hard drive (or SSD) that acts as "emergency RAM." When your real RAM gets full, Linux moves some inactive stuff from memory to swap so it can free up RAM for the things you're actively using.

The catch: your hard drive is way slower than RAM (even an SSD is 10-100x slower). So if your system is constantly swapping, everything feels sluggish. You'll hear people call this "thrashing."

Check your swap usage

# See how much swap is being used
free -h
swapon --show

What is swappiness?

Swappiness is a number from 0 to 200 that tells Linux how eagerly it should use swap. The default is usually 60.

  • Lower value (e.g. 10): Linux tries harder to keep things in RAM and only swaps when it really has to. Better for desktops where you want things to feel snappy.
  • Higher value (e.g. 60-100): Linux swaps more aggressively. Can be okay for servers but makes desktops feel slower.

How to adjust swappiness

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

# Temporarily set it to 10 (resets on reboot)
sudo sysctl vm.swappiness=10

# Make it permanent: add this line to /etc/sysctl.conf
echo 'vm.swappiness=10' | sudo tee -a /etc/sysctl.conf
Desktop recommendation: If you have 8 GB+ of RAM, try setting swappiness to 10. If you have 4 GB or less, keep it around 30-60 so Linux can still use swap when needed.
Checking disk health

If your system is slow and nothing else explains it, your hard drive or SSD might be failing. Drives don't always die suddenly — they often get slower and slower before giving up completely. This is especially true for older spinning hard drives (HDDs).

Check with SMART data

Most drives keep track of their own health using something called SMART. You can read it with smartctl:

# Install smartmontools
sudo apt install smartmontools     # Ubuntu/Debian/Mint
sudo dnf install smartmontools     # Fedora
sudo pacman -S smartmontools       # Arch

# Check your drive's health (replace /dev/sda with your drive)
sudo smartctl -a /dev/sda

# Quick health check
sudo smartctl -H /dev/sda
# You want to see: PASSED

What to look for

  • Overall health: If it says anything other than "PASSED", back up your data immediately
  • Reallocated Sector Count: If this number is growing, your drive is developing bad spots
  • Current Pending Sector Count: Sectors waiting to be remapped — not a great sign
  • Power-On Hours: HDDs over 30,000-40,000 hours are living on borrowed time
If your drive is failing: Back up your data immediately. A failing drive can go from "a bit slow" to "completely dead" without much warning. Replace it and restore from backup.

HDD vs SSD

If you're still using a traditional spinning hard drive (HDD), upgrading to an SSD is the single biggest speed improvement you can make. It's like night and day — boot times go from minutes to seconds, and everything feels dramatically snappier. Even a cheap SSD will transform an old computer.

Per-Distro Cleanup Commands

Every distro's package manager caches downloaded packages. Over time, this cache can eat several gigabytes of disk space. Here's how to clean up on each major distro:

Ubuntu / Debian / Mint (apt)
# Remove packages that were installed as dependencies but are no longer needed
sudo apt autoremove

# Clean the package cache (downloaded .deb files)
sudo apt clean

# Remove old config files from uninstalled packages
sudo apt purge $(dpkg -l | grep '^rc' | awk '{print $2}')

# Clean up old snap versions (Ubuntu)
sudo snap list --all | awk '/disabled/{print $1, $3}' | \
  while read snapname revision; do
    sudo snap remove "$snapname" --revision="$revision"
  done

# Clean thumbnail cache
rm -rf ~/.cache/thumbnails/*

# See how much space you freed
df -h /
Fedora (dnf)
# Remove unneeded dependencies
sudo dnf autoremove

# Clean the package cache
sudo dnf clean all

# Remove old kernels (keeps the current + one previous)
sudo dnf remove --oldinstallonly

# Clean thumbnail cache
rm -rf ~/.cache/thumbnails/*

# See how much space you freed
df -h /
Arch / Manjaro (pacman)
# Clean the package cache (keeps the 3 most recent versions)
sudo pacman -Sc

# More aggressive: remove ALL cached packages except installed versions
sudo pacman -Scc

# Remove orphaned packages (installed as deps, no longer needed)
sudo pacman -Rns $(pacman -Qdtq)

# If you use yay/paru, clean AUR build cache too
yay -Sc
# or
paru -Sc

# Clean thumbnail cache
rm -rf ~/.cache/thumbnails/*

# See how much space you freed
df -h /
openSUSE (zypper)
# Clean the package cache
sudo zypper clean --all

# Remove unneeded packages
sudo zypper packages --unneeded | awk -F'|' 'NR>3 {print $3}' | xargs sudo zypper remove

# Clean thumbnail cache
rm -rf ~/.cache/thumbnails/*

# See how much space you freed
df -h /

When to Consider a Lighter Distro or Desktop

If you've tried everything above and your system is still struggling, it might just be that your hardware can't keep up with a heavyweight desktop. That's not a failure — it's an opportunity. One of the best things about Linux is that you can pick an environment that matches your hardware.

Consider switching if:

Good lightweight options:

You don't have to reinstall. You can install a lighter desktop environment alongside your current one and pick it from the login screen. Try XFCE or LXQt first. If that solves the problem, you know it was the desktop weight, not a deeper issue.