Need help configing zram / pop os 22.04 laptop

i could use some help with zram id like to know if this is the file in which zram tweaks for pop os are

are made an if so what lines an values / setting can be changed to improve or

adjust zram function

what can these settings be adjusted by an to what effect


#!/bin/bash

Copyright 2022 System76 [email protected]

SPDX-License-Identifier: GPL-3.0-only

If a zram device already exists, ignore

test -b /dev/zram0 && exit 0

ENV_CONF=‘/etc/pop-zram’

Load user-defined variabls if a config exists

if test -f ${ENV_CONF}; then
export $(grep -v ‘^#’ ${ENV_CONF} | xargs)
fi

Default to compress with zstd, which has an average compression ratio of 3.37:3

test -n “${ALGO}” || ALGO=zstd

Max amount of uncompressed RAM that should be compressed.

test -n “${MAX_SIZE}” || MAX_SIZE=16384

Higher values encourage the kernel to be more eager to move pages to swap.

test -n “${SWAPPINESS}” || SWAPPINESS=90

Amount of memory to use for zram, from 1 to 200

test -n “${PORTION}” || PORTION=50

if ((PORTION > 200)); then
PORTION=200
elif ((PORTION < 1)); then
PORTION=1
fi

Number of consecutive pages to read in advance. Higher values increase compression

for zram devices, but at the cost of significantly reduced IOPS and higher latency.

It is highly recommended to use 0 for zstd; and 1 for speedier algorithms.

test -n “${PAGE_CLUSTERS}” || PAGE_CLUSTERS=$(test zstd = ${ALGO} && echo 0 || echo 1)

Total amount of memory accessible to the OS.

TOTAL=$(awk -v p=${PORTION} ‘/MemTotal/ {printf “%.0f”, p * $2 / 102400}’ /proc/meminfo)

Ensure that the size is not greater than the max size.

SIZE=$(((TOTAL > MAX_SIZE)) && echo ${MAX_SIZE} || echo ${TOTAL})

Load the zram module.

modprobe zram num_devices=1
udevadm settle -t 1

Create it with our desired size and compression algorithm

zramctl --size “${SIZE}M” --algorithm “${ALGO}” /dev/zram0

Format it as a swap partition

mkswap /dev/zram0
udevadm settle -t 1

Activate the zram device with a priority of 1000.

This device should have a higher priority than disk-based swap.

swapon -p 1000 /dev/zram0

Apply optimal sysctl values for the zram environment.

sysctl -w “vm.page-cluster=${PAGE_CLUSTERS}” “vm.swappiness=${SWAPPINESS}”

Ensure at least 1% of total memory is free to avoid system freeze.

MINIMUM=$(awk ‘/MemTotal/ {printf “%.0f”, $2 * 0.01}’ /proc/meminfo)
CURRENT=$(sysctl vm.min_free_kbytes | awk ‘{print $3}’)
if ((MINIMUM > CURRENT)); then
sysctl -w “vm.min_free_kbytes=${MINIMUM}”
fi

an were if i can do i adjust the vm.page-cluster= setting an what options
are ther an ther effects

im trying to improve the usage of my 16gb of ram which i cant upgrade anymore to my laptop

an zram seem to chew more then before