I've been trying out a raspi 3 as a desktop recently, and have run into strange performance problems, particularly when using chrome.
- raspberry pi 3
- running raspbian stretch
- 2.5A power supply
- "fake kms" opengl driver selected
- 256MB allocated to video RAM
- swap files disabled
- swappiness set to either 1 or 0
The issue I'm seeing is that, with a few tabs open in chromium, the system gets into a certain characteristic state:
- UI becomes extremely unresponsive
- kswapd typically at 10% CPU
- top reports wait time around 50%, with user and sys at 1 to 5%
- about 200MB free memory in top
I've read reports about how systems behave when there is no swap and the system is running out of ram (kswapd goes crazy and the system grinds to a halt).
That seems to match how my system is behaving, but I have 200MB free! wtf?
I'm also suspicious of that 200MB number -- it seems to be staying suspiciously consistent at 200MB, even if I try to e.g. open another blank tab (which takes several minutes).
Is there some kernel parameter which is telling the system how much free RAM to keep available?
Is there a way I can tell the system to just use the OOM killer instead of going nuts with kswapd? I'd rather see hard evidence (a killed process) that I'm actually "running out RAM" (despite 200MB reported free).
p.s. the performance problems seem specific to the chromium workload. Running Quake 1 at 800x600 with opengl runs very smooth with no issues.