Fixing a Sluggish ThinkPad T480
2026-03-08
I recently started using my ThinkPad T480 more regularly as a secondary work machine. It’s a solid laptop with 16 GB of RAM, an NVMe SSD, and an Intel i5-8350U. On paper, that should be more than enough for everyday work.
But something felt off.
The machine wasn’t unusable, but it was just slow enough to be annoying. Switching tabs in Chrome, moving windows around, and general browsing all had a slight bit of drag to them. Not terrible, but enough that I kept thinking, “Why does this feel worse than it should?”
That question turned into a small investigation.
First Thought: Maybe It Was Cinnamon
My first assumption was that the desktop environment might be part of the problem. I was running Linux Mint with Cinnamon, which is polished and pleasant to use, but heavier than some alternatives.
I decided to install XFCE just to remove that variable and see if a lighter desktop environment made a big difference.
sudo apt install xfce4 xfce4-goodiesAfter logging back in under XFCE, the system did feel a little lighter, but not dramatically different. That told me the desktop environment probably wasn’t the real cause of the sluggishness.
Still, I decided to stay on XFCE. Even if it wasn’t the main issue, I liked the idea of knowing the operating system itself wasn’t adding unnecessary overhead.
The Real Problem: CPU Governor
The biggest breakthrough came when I checked the CPU scaling governor.
Every core was running in powersave mode.
cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_governorThat doesn’t mean the CPU is locked to low speed all the time, but it does mean it tends to ramp up more slowly and sit at lower clocks longer. That can be great for battery life, but it also makes a machine feel lazy during normal interactive work.
I switched the governor to performance.
sudo bash -c 'for cpu in /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor; do echo performance > $cpu; done'The difference was immediate.
Suddenly the T480 felt like the machine I expected it to be. Tabs responded better. Window movement felt smoother. The little bits of lag I had been noticing were mostly gone. It was one of those moments where the machine instantly makes more sense.
Confirming the Hardware Wasn’t the Issue
Before making more changes, I verified the basics.
The system had 16 GB of RAM available, and memory pressure wasn’t the problem.
free -hThe CPU turned out to be an Intel i5-8350U, which is still a respectable chip for this kind of machine.
lscpu | grep "Model name"The drive was also exactly what I hoped to see: an NVMe SSD.
lsblk -o NAME,MODEL,ROTA,SIZEIn this case it was a WDC SN520 NVMe drive, which meant storage was not the bottleneck either.
So at that point it was becoming clear that the laptop itself was not underpowered. It had simply been configured in a way that favored battery life over responsiveness.
Improving Memory Behavior with ZRAM
Next I checked swap behavior.
Linux Mint already had zram enabled, which was good, but it was configured at only 256 MB. On a 16 GB system, that’s barely useful.
I checked the config file:
cat /etc/default/zramswapThen I changed it to use 50% of system memory instead.
PERCENT=50After restarting the service, zram jumped to about 7.7 GB.
sudo systemctl restart zramswap
swapon --showThis is a much better setup for a machine that does browser-heavy work. Instead of running out of RAM and hitting slow disk swap, the system now has a large block of compressed RAM swap to absorb memory spikes more gracefully.
Adjusting Swappiness
I also checked the Linux swappiness value.
cat /proc/sys/vm/swappinessThe default was 60, which is fairly typical, but higher than I wanted on a machine with 16 GB of RAM and large zram.
I lowered it to 10.
sudo sysctl vm.swappiness=10That tells the kernel to avoid swapping unless memory pressure actually becomes significant.
The result was that the machine felt more eager and less likely to dump things into swap unnecessarily.
CPU Scaling Driver
I also checked which CPU frequency scaling driver was being used.
cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_driverThe system was correctly using intel_pstate, which is
what I wanted to see on this hardware.
So there was no major issue there — the governor choice had simply been too conservative.
TRIM Support
I also verified TRIM support for the NVMe drive.
systemctl status fstrim.timerThe weekly TRIM timer was already enabled, which is important for maintaining SSD performance over time.
That meant storage maintenance was already being handled properly.
Powertop
I spent a little time using powertop as well.
sudo powertopThis was useful mostly for visibility and understanding what the machine was doing from a power management standpoint.
What became clear through all of this is that the laptop was not actually struggling from a hardware perspective. It was simply tuned very conservatively for battery life.
Final Takeaway
The most interesting part of this whole process is that the laptop itself was never really the problem.
The hardware was fine. The RAM was fine. The SSD was fine. Even Cinnamon was not the real issue.
The biggest problem came down to one small but important configuration detail: the CPU governor was set too conservatively.
Once that was fixed, everything else became refinement.
It was a good reminder that when a machine feels slow, the answer is not always “old hardware.” Sometimes the machine is simply configured in a way that makes it feel worse than it actually is.
After a few adjustments, this ThinkPad T480 ended up feeling exactly like I expected it to in the first place: not cutting-edge, not a powerhouse, but absolutely comfortable and capable for everyday work.