We have this ThinkPad X240, 8GiB of RAM, an i5 4300U, and a Toshiba SATA SSD. The machine is running Linux Mint 20.3.
The user complains that it is very slow. Mostly when the browser is open and several tabs are loaded. In particular Google Maps takes several seconds to interactive, and moving the map around means a couple of seconds where the machine is choppy. This user's usage is mostly through the browser (Firefox). Same thing when the browser is open and using LibreOffice at the same time, it takes a couple of seconds to register inputs from the keyboard or the mouse.
I've run free -mt
and don't see any sign that's it's out of RAM or swapping. The CPU doesn't seem overwhelmed either. The WiFi connection is a little slow, but that would only impact pages' loading time and not slow the whole machine down.
I've reduced the swappiness to use the swap less, and I've installed an extension to unload unused browser tabs since this particular machine is stuck at 8GiB of RAM max: the wise designers at Lenovo thought one RAM slot was enough for this machine.
I have to admit that my diagnosing skills aren't super advanced, and I struggle to understand what the issue is especially that the user's workflow isn't that demanding.
I have a few hypothesis:
The CPU is somehow overwhelmed, but I don't think that's the case as the load average via uptime
is below 1.00
The machine doesn't have enough RAM and swaps, but free -mt
shows a couple GiB of free RAM and a very small swap figure
The SSD doesn't have enough IO and the queue builds up, which I don't know how to check
The OS is somehow misconfigured and does something suboptimal, I don't know how to check that
The graphics driver is problematic and doesn't use hardware acceleration, I don't know how to check that
Or maybe something else entirely.
What methodical steps could I take to eliminate possible issues and identify where the bottleneck is?
Since the problem is intermittent and I'm not always available to investigate when the condition is present, is there some kind of logging I could be doing on the machine to analyze issues after the fact?