Snakeoil Forums

Full Version: zram...? Raspberry Pi & Snakeoil
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
zram vs swap.... seems easy to try and revert....
I don't think either are particularly needed as monitoring with top whilst playing seems to show the most hungry program being...top @14% CPU on one core.

Mpd is pretty low resource usage anyway and these days I am using an AK4137 re-sampler to convert to DSD256 either via xmos or I2S depending on player so no heavy re-sampling is needed by the o/s or player hardware and DSD is fed to an Ess DAC bypassing some of the Chip's filtering.

So, I will try some more listening tests using zram and see if I can notice any difference....
Any comments appreciated...

https://github.com/novaspirit/rpi_zram
(24-Oct-2018, 05:02 PM)Bromf Wrote: [ -> ]zram vs swap.... seems easy to try and revert....
I don't think either are particularly needed as monitoring with top whilst playing seems to show the most hungry program being...top @14% CPU on one core.

Mpd is pretty low resource usage anyway and these days I am using an AK4137 re-sampler to convert to DSD256 either via xmos or I2S depending on player so no heavy re-sampling is needed by the o/s or player hardware and DSD is fed to an Ess DAC bypassing some of the Chip's filtering.

So, I will try some more listening tests using zram and see if I can notice any difference....
Any comments appreciated...

https://github.com/novaspirit/rpi_zram

swap is just there as a buffer in case my RESTful API messed up. So far it hasn't, but if it does at least there's something to fall back to. The good thing is if there's no issues, then the swap space will be enabled but not used. if you know what I mean.

An good  option is to have an option to turn off swap entirely. That may be worthwhile I think.

As for zram.. That's the first time I have heard of it.. Will try and research later what it is later on. Thumbs Up
zram is a 'swap' space in ram using compression. It replaces a conventional swap space so reduce wear/usage for the Pi's sd-card and is much faster if and when it is used.
The linked github version for the Pi removes current swap and replaces it with zram swap calculated for the performance/cores of a Pi3 or better.

I've found no performance issues so far in testing.... though no obvious benefits yet either... Wink

https://www.kernel.org/doc/Documentation...v/zram.txt
https://www.cnx-software.com/2018/05/14/...able-zram/
(25-Oct-2018, 05:25 AM)Bromf Wrote: [ -> ]zram is a 'swap' space in ram using compression. It replaces a conventional swap space so reduce wear/usage for the Pi's sd-card and is much faster if and when it is used.
The linked github version for the Pi removes current swap and replaces it with zram swap calculated for the performance/cores of a Pi3 or better.

I've found no performance issues so far in testing.... though no obvious benefits yet either... Wink
Ah, that brings back memories back in the DOS days.. A memory compressor.

(25-Oct-2018, 05:25 AM)Bromf Wrote: [ -> ]https://www.kernel.org/doc/Documentation...v/zram.txt
https://www.cnx-software.com/2018/05/14/...able-zram/
I'd see if I can get that support in. Chances are, it'd require a new kernel though.. Wiill explore this in time.
From what I've read zram is merged into mainline kernel since 3.14....
Using the linked github install on RPi and when I run...
Code:
$ grep zram /proc/swaps
it returns...
Code:
/dev/zram0                              partition    236028    0    5
so appears to be enabled as default swap but unused currently as Pi3 and Snakeoil is using so very few resources.. Smile
(25-Oct-2018, 06:16 PM)Bromf Wrote: [ -> ]From what I've read zram is merged into mainline kernel since 3.14....
Using the linked github install on RPi and when I run...
Code:
$ grep zram /proc/swaps
it returns...
Code:
/dev/zram0                              partition    236028    0    5
so appears to be enabled as default swap but unused currently as Pi3 and Snakeoil is using so very few resources.. Smile  
Run something intensive like JRiver and see more RAM gets consumed. To be fair this also likes a virtual desktop, hence the extra overheads. This is why I prefer MPD or LMS+Squeezelite.

Edit: To be even fairer I think I should be able to cut down the number of running processes too. From 1.x.x onwards I notice the number of processes running appear to be 2 to 4 times more than 0.1.x series. However, I guess because of the real time+force preemption kernel, it doesn't really matter as the process that requires CPU attention will always get it.

Hopefully I can revise the kernel and streamline it even more in the future.