Optimizing for high RAM, low CPU/GPU

Hey folks, just reinstalled Garuda onto a new NVME drive on my laptop. Had it running on a hard disk before. Looks like my 12gb of ram is sufficient (especially with Zram & a large swap), but now I’m CPU & iGPU limited.

Any recommendations for optimizations? A particular kernel or scheduler I should be using, like BORE? Changes to Zram settings? Zswap or Zcache maybe? I saw someone on the forums mention switching the CPU from on-demand to performance, but I’m not sure where to do that.

Ideally I’d also like to optimize for battery usage, but I figure I can just switch to battery performance mode when I need to. Honestly, I’m half tempted to try compiling my own kernel sometime.

(Also if this post looks familiar, I posted it on r/linuxquestions too, hope that’s ok)

`System:`
`Kernel: 6.12.41-1-lts arch: x86_64 bits: 64 compiler: gcc v: 15.1.1`
`clocksource: tsc avail: hpet,acpi_pm`
`parameters: BOOT_IMAGE=/@/boot/vmlinuz-linux-lts`
`root=UUID=3bbdd848-9f2e-42de-a1df-012851c4d965 rw`
`rootflags=subvol=@ quiet`
`resume=UUID=f5582690-b714-4477-97e2-1225959e08e3 loglevel=3 splash`
`ibt=off`
`Desktop: KDE Plasma v: 6.4.4 tk: Qt v: N/A info: frameworks`
`v: 6.16.0 wm: kwin_wayland vt: 1 dm: SDDM Distro: Garuda`
`base: Arch Linux`
`Machine:`
`Type: Laptop System: Dell product: Inspiron 5570 v: N/A`
`serial:  Chassis: type: 10`
`serial: `
`Mobo: Dell model: 0RW61C v: A00 serial: `
`part-nu: 0810 uuid:  UEFI: Dell v: 1.14.0`
`date: 04/06/2023`
`Battery:`
`ID-1: BAT0 charge: 41.5 Wh (100.0%) condition: 41.5/42.0 Wh (98.9%)`
`volts: 12.9 min: 11.4 model: SMP DELL 35RH35C type: Li-ion`
`serial:  status: full`
`CPU:`
`Info: model: Intel Core i3-8130U bits: 64 type: MT MCP`
`arch: Coffee Lake gen: core 8 level: v3 note: check built: 2017`
`process: Intel 14nm family: 6 model-id: 0x8E (142)`
`stepping: 0xA (10) microcode: 0xF6`
`Topology: cpus: 1x dies: 1 clusters: 2 cores: 2 threads: 4 tpc: 2`
`smt: enabled cache: L1: 128 KiB desc: d-2x32 KiB; i-2x32 KiB`
`L2: 512 KiB desc: 2x256 KiB L3: 4 MiB desc: 1x4 MiB`
`Speed (MHz): avg: 800 min/max: 400/2200 scaling:`
`driver: intel_pstate governor: powersave cores: 1: 800 2: 800 3: 800`
`4: 800 bogomips: 17605`
`Flags: avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx`
`Vulnerabilities: `
`Graphics:`
`Device-1: Intel UHD Graphics 620 vendor: Dell driver: i915 v: kernel`
`arch: Gen-9.5 process: Intel 14nm built: 2016-20 ports: active: eDP-1`
`empty: DP-1,HDMI-A-1,HDMI-A-2 bus-ID: 00:02.0 chip-ID: 8086:5917`
`class-ID: 0300`
`Device-2: Realtek Integrated Webcam driver: uvcvideo type: USB`
`rev: 2.0 speed: 480 Mb/s lanes: 1 mode: 2.0 bus-ID: 1-5:2`
`chip-ID: 0bda:568a class-ID: 0e02 serial: `
`Display: wayland server: ``X.org`` v: 1.21.1.18 with: Xwayland`
`v: 24.1.8 compositor: kwin_wayland driver: X: loaded: modesetting`
`alternate: fbdev,intel,vesa dri: iris gpu: i915 display-ID: 0`
`Monitor-1: eDP-1 model: AU Optronics 0x10ed built: 2016 res:`
`mode: 1920x1080 hz: 60 scale: 120% (1.2) to: 1600x900 dpi: 142`
`gamma: 1.2 size: 344x193mm (13.54x7.6") diag: 394mm (15.5")`
`ratio: 16:9 modes: 1920x1080`
`API: EGL v: 1.5 hw: drv: intel iris platforms: device: 0 drv: iris`
`device: 1 drv: swrast gbm: drv: iris surfaceless: drv: iris wayland:`
`drv: iris x11: drv: iris`
`API: OpenGL v: 4.6 compat-v: 4.5 vendor: intel mesa`
`v: 25.1.7-arch1.1 glx-v: 1.4 direct-render: yes renderer: Mesa Intel`
`UHD Graphics 620 (KBL GT2) device-ID: 8086:5917 memory: 11.31 GiB`
`unified: yes display-ID: :1.0`
`API: Vulkan v: 1.4.321 layers: 13 device: 0 type: integrated-gpu`
`name: Intel UHD Graphics 620 (KBL GT2) driver: mesa intel`
`v: 25.1.7-arch1.1 device-ID: 8086:5917 surfaces: N/A device: 1`
`type: cpu name: llvmpipe (LLVM 20.1.8 256 bits)`
`driver: mesa llvmpipe v: 25.1.7-arch1.1 (LLVM 20.1.8)`
`device-ID: 10005:0000 surfaces: N/A`
`Info: Tools: api: clinfo, eglinfo, glxinfo, vulkaninfo`
`de: kscreen-console,kscreen-doctor gpu: corectrl wl: wayland-info`
`x11: xdpyinfo, xprop, xrandr`
`Audio:`
`Device-1: Intel Sunrise Point-LP HD Audio vendor: Dell`
`driver: snd_hda_intel v: kernel alternate: snd_soc_avs`
`bus-ID: 00:1f.3 chip-ID: 8086:9d71 class-ID: 0403`
`API: ALSA v: k6.12.41-1-lts status: kernel-api with: aoss`
`type: oss-emulator tools: N/A`
`Server-1: PipeWire v: 1.4.7 status: active with: 1: pipewire-pulse`
`status: active 2: wireplumber status: active 3: pipewire-alsa`
`type: plugin 4: pw-jack type: plugin`
`tools: pactl,pw-cat,pw-cli,wpctl`
`Network:`
`Device-1: Realtek RTL810xE PCI Express Fast Ethernet vendor: Dell`
`driver: r8169 v: kernel pcie: gen: 1 speed: 2.5 GT/s lanes: 1`
`port: e000 bus-ID: 01:00.0 chip-ID: 10ec:8136 class-ID: 0200`
`IF: enp1s0 state: down mac: `
`Device-2: Intel Wireless 3165 driver: iwlwifi v: kernel pcie:`
`gen: 1 speed: 2.5 GT/s lanes: 1 bus-ID: 02:00.0 chip-ID: 8086:3165`
`class-ID: 0280`
`IF: wlp2s0 state: up mac: `
`Info: services: NetworkManager, systemd-timesyncd, wpa_supplicant`
`Bluetooth:`
`Device-1: Intel Bluetooth wireless interface driver: btusb v: 0.8`
`type: USB rev: 2.0 speed: 12 Mb/s lanes: 1 mode: 1.1 bus-ID: 1-7:4`
`chip-ID: 8087:0a2a class-ID: e001`
`Report: btmgmt ID: hci0 rfk-id: 2 state: up address: N/A`
`Drives:`
`Local Storage: total: 1.84 TiB used: 73.55 GiB (3.9%)`
`SMART Message: Unable to run smartctl. Root privileges required.`
`ID-1: /dev/nvme0n1 maj-min: 259:0 vendor: Toshiba model: RD400`
`size: 953.87 GiB block-size: physical: 512 B logical: 512 B`
`speed: 31.6 Gb/s lanes: 4 tech: SSD serial: `
`fw-rev: 57CZ4102 temp: 72.8 C scheme: GPT`
`ID-2: /dev/sda maj-min: 8:0 vendor: Seagate`
`model: ST1000LM035-1RK172 size: 931.51 GiB block-size:`
`physical: 4096 B logical: 512 B speed: 6.0 Gb/s tech: HDD rpm: 5400`
`serial:  fw-rev: SDM3 scheme: GPT`
`Partition:`
`ID-1: / raw-size: 48.83 GiB size: 48.83 GiB (100.00%)`
`used: 13.53 GiB (27.7%) fs: btrfs dev: /dev/nvme0n1p2 maj-min: 259:2`
`ID-2: /boot/efi raw-size: 512 MiB size: 511 MiB (99.80%)`
`used: 616 KiB (0.1%) fs: vfat dev: /dev/nvme0n1p1 maj-min: 259:1`
`ID-3: /home raw-size: 878.91 GiB size: 878.91 GiB (100.00%)`
`used: 60.02 GiB (6.8%) fs: btrfs dev: /dev/nvme0n1p3 maj-min: 259:3`
`ID-4: /var/log raw-size: 48.83 GiB size: 48.83 GiB (100.00%)`
`used: 13.53 GiB (27.7%) fs: btrfs dev: /dev/nvme0n1p2 maj-min: 259:2`
`ID-5: /var/tmp raw-size: 48.83 GiB size: 48.83 GiB (100.00%)`
`used: 13.53 GiB (27.7%) fs: btrfs dev: /dev/nvme0n1p2 maj-min: 259:2`
`Swap:`
`Kernel: swappiness: 133 (default 60) cache-pressure: 100 (default)`
`zswap: no`
`ID-1: swap-1 type: zram size: 11.58 GiB used: 96 MiB (0.8%)`
`priority: 100 comp: zstd avail: lzo-rle,lzo,lz4,lz4hc,deflate,842`
`max-streams: 4 dev: /dev/zram0`
`ID-2: swap-2 type: partition size: 25.63 GiB used: 0 KiB (0.0%)`
`priority: -2 dev: /dev/nvme0n1p4 maj-min: 259:4`
`Sensors:`
`System Temperatures: cpu: 54.0 C pch: 51.0 C mobo: 43.0 C`
`sodimm: 42.0 C`
`Fan Speeds (rpm): cpu: 0`
`Info:`
`Memory: total: 12 GiB available: 11.58 GiB used: 4.77 GiB (41.2%)`
`Processes: 259 Power: uptime: 10h 33m states: freeze,mem,disk`
`suspend: deep avail: s2idle wakeups: 1 hibernate: platform`
`avail: shutdown, reboot, suspend, test_resume image: 4.6 GiB`
`services: org_kde_powerdevil, power-profiles-daemon, upowerd`
`Init: systemd v: 257 default: graphical tool: systemctl`
`Packages: pm: pacman pkgs: 1752 libs: 517 tools: octopi,pamac,paru`
`pm: flatpak pkgs: 0 Compilers: clang: 20.1.8 gcc: 15.1.1`
`Shell: garuda-inxi default: fish v: 4.0.2 running-in: konsole`
`inxi: 3.3.38`
`Garuda (2.7.3-2):`
`System install date:     2025-08-05`
`Last full system update: 2025-08-06 ↻`
`Is partially upgraded:   No`
`Relevant software:       snapper NetworkManager dracut`
`Windows dual boot:       Probably (Run as root to verify)`
`Failed units:`

I found ZSTD was using a fair bit of CPU, sometimes slowing IO down, and getting the CPU running warm and fast more often than I’d like, on my notebook (which is substantially faster than yours), though it’s basically invisible on my desktop. Definitely worth disabling, with plenty of SSD space, but a relatively weak CPU. Just remove the compression options in the fstab entries.

With 12GB RAM, ZRAM may still be a net positive. But, if you want to disable it, add, ‘systemd.zram=0’ to the kernel parameters (use the boot options tool, or edit I think /etc/default/grub).

I use TLP (TLPUI helps) to manage CPU power settings, and would recommend it, if you want to try to maximize practical battery life. While configuration is a bit awkward, sometimes, it allows more fine control than power-profiles-daemon. With a Coffee Lake, you should be good to use active p-state drivers, and then either performance or powersave governors (powersave for battery life, obviously), then tweak other settings, like limiting power and/or max clocks on battery. Last I needed to really tweak them, OCCT did the job, in terms of giving enough useful data in a timely fashion about what the CPU was up to, under normal usage. RTFM and experiment.

You can go into desktop effects, in settings, and disable everything that isn’t a good usability feature for you, to reduce extraneous CPU and GPU usage, as well. FI, I think I have everything disabled but dimming or desaturating parent windows of dialogs, and the magnifier, plus I removed the force blur package. If you don’t use file search much, maybe disable search indexing.

1 Like

I’d say if your going to use plasma maybe go with kde lite to start with and add on form there if your a bit skilled or at least willing to use the terminal. The other, its best to turn the eye candy stuff off. Maybe xfce or cinnamon. I do wish lxqt was still around but it could be installed and used as a new user if wanted. I would also give this a watch as well https://www.youtube.com/watch?v=5rPdeiCugXo while its not from a restricted standpoint it should give you some baselines. Over all the mine ish DE’s.

1 Like

I’m not sure my processor is Coffee Lake tbh. Intel’s site says its Kaby Lake, & asking around in Intel forums, it seems like it might be 7th or 8th gen “Kaby Lake Refreshed”. Apparently the laptop/mobile CPUs are different from the desktop ones even when they have the same name.

Deffo gonna look into everything else in your reply though - knowing that TLPUI exists is great.

First..pls reboot your system = (↻)

Garuda..default zram is enabled –> leave it as it is. –> you can optimize zram

Create a file in /etc/sysctl.d/99-vm-zram-parameters.conf (with root privileges)

Insert and reboot –> done!

vm.swappiness = 180

vm.watermark_boost_factor = 0vm

watermark_scale_factor = 125vm

page-cluster = 0

And i’m with elite..use a DE with less on resources as plasma or use kde lite.

1 Like

Lol that was a few days ago. I’ve rebooted, updated, & tweaked 2 or 3 times since.

Thanks for the zram optimizations.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.