Swap in ram e compressa

Se avete problemi con l'installazione e la configurazione di Slackware postate qui. Non usate questo forum per argomenti generali... per quelli usate Gnu/Linux in genere.

Moderatore: Staff

Regole del forum
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Slackware, se l'argomento è generale usate il forum Gnu/Linux in genere.
3) Leggere attentamente le risposte ricevute.
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
Rispondi
rik70
Iper Master
Iper Master
Messaggi: 2492
Iscritto il: gio 10 mar 2011, 9:21
Slackware: 15.0
Kernel: 5.15.x-generic
Desktop: Sway
Distribuzione: Arch Linux

Swap in ram e compressa

Messaggio da rik70 »

Ciao di nuovo a tutti.

Volevo condividere con voi alcuni esperimenti con gli ultimi kernel e la Slackware.

Premessa.

PC vecchio: P4 2.8Ghz con 1 GB di ram.

SWAP
Chiaro che con così poca RAM in certe circostanze il sistema 'swappa'. Sopratutto con firefox e siti particolarmenti pesanti.
Su questa storia dello swapping ho sempre avuto molti dubbi e poche certezze.
Si legge in giro che sarebbe meglio evitarlo. Altri sostengono che in un pc desktop varrebbe l'esatto contrario.

Io ho sempre seguito la prima corrente di pensiero, impostando il parametro del kernel 'vm.swappiness' sul valore '10'.

Problema:
come dicevo prima, in certe circostanze il sistema swappa. E quando lo fa purtroppo tende a essere parecchio meno reattivo - il lancio di nuove applicazioni ci mette più tempo del solito.

Ho deciso allora di provare il secondo approccio e spingere il sistema a 'swappare' - che brutto termine - più spesso. Ma non su disco, piuttosto in ram.

A tale scopo viene in aiuto il modulo zram. Questo modulo negli ultimi kernel è uscito dallo stato "staging" ed è dunque considerato stabile. Supporta la compressione LZ4, che dovrebbe grantire maggiore velocità nella compressione e decompressione. Potrebbe tornare utile anche per montare la /tmp in ram.

Ma veniamo ai "trucchi e consigli".

Kernel 3.15.5.

Configurazione (se non ho dimenticato qualcosa):

Codice: Seleziona tutto

CONFIG_ZSMALLOC=y
CONFIG_ZRAM=m
CONFIG_ZRAM_LZ4_COMPRESS=y
CONFIG_LZ4_COMPRESS=m
CONFIG_LZ4_DECOMPRESS=y
CONFIG_DECOMPRESS_LZ4=y
modinfo zram:

Codice: Seleziona tutto

filename:       /lib/modules/3.15.5-smp/kernel/drivers/block/zram/zram.ko
description:    Compressed RAM Block Device
author:         Nitin Gupta <ngupta@vflare.org>
license:        Dual BSD/GPL
depends:        lz4_compress
intree:         Y
vermagic:       3.15.5-smp SMP preempt mod_unload PENTIUMIII 
parm:           num_devices:Number of zram devices (uint)
/etc/rc.d/rc.local:

Codice: Seleziona tutto

if [ -f /lib/modules/$(uname -r)/kernel/drivers/block/zram/zram.ko ]; then
  sysctl vm.swappiness=80
  swapoff -a
  modprobe zram
  echo '256M' > /sys/devices/virtual/block/zram0/disksize
  mkswap /dev/zram0
  swapon -a
  swapon -p 16000 /dev/zram0
fi
Risultato:
bhè a "occhio" i miglioramenti ci sono. Al momento in cui scrivo il sistema utilizza 54 MB di swap, ma non c'è nessun rallentamento di sorta. Insomma il trucco sembra funzionare.

A voi l'onere della prova e i commenti - ovviamente se la faccenda v'interessa.

Ciao

Avatar utente
targzeta
Iper Master
Iper Master
Messaggi: 6629
Iscritto il: gio 3 nov 2005, 14:05
Nome Cognome: Emanuele Tomasi
Slackware: 64-current
Kernel: latest stable
Desktop: IceWM
Località: Carpignano Sal. (LE) <-> Pisa

Re: Swap in ram e compressa

Messaggio da targzeta »

Io però non capisco perché swappare in RAM. Cioé, l'area di swap serve proprio quando il PC non ha più RAM, ha senso ridurla ulteriormente per creare un'area di swap che conterrà dei dati che sarebbero comunque andati in lì?

L'unico "vantaggio" è che l'area dovrebbe contenere più dati visto che è compressa, ma questo viene fatto a scapito della CPU.

In pratica il tuo è un finto swap, più che altro è un modo per comprimere la memoria.

Detto questo, io non so cosa usi tu ma io con un semplice WM (IceWM), quindi senza DE faccio quasi tutto con meno di 1GB di RAM (firefox aperto con varie schede). Attualmente ho allocato 500MB.

Emanuele
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama

rik70
Iper Master
Iper Master
Messaggi: 2492
Iscritto il: gio 10 mar 2011, 9:21
Slackware: 15.0
Kernel: 5.15.x-generic
Desktop: Sway
Distribuzione: Arch Linux

Re: Swap in ram e compressa

Messaggio da rik70 »

Anch'io utilizzo un DE leggero, e ho 512Mb di swap. Lo swap avviene di solito di pocohi Mb e mi capita su siti come i quotidiani - che caricano la madon*a di roba - o se sto compilando. Poi se apro un pdf nel browser son dolori.

Il problema più che altro è che dopo che swappa su disco come dicevo i programmi mettono più tempo a caricare. L'hardware è a posto quindi escludo problemi.

E' vero che tolgo ram. Ma solo quando questa viene utilizzata. O mi sbaglio? Come avviene con /dev/shm. A me basta che quei pochi megabyte non mi tocchino il disco.

O sto dicendo fesserie? E' per questo che ho postato :)

rik70
Iper Master
Iper Master
Messaggi: 2492
Iscritto il: gio 10 mar 2011, 9:21
Slackware: 15.0
Kernel: 5.15.x-generic
Desktop: Sway
Distribuzione: Arch Linux

Re: Swap in ram e compressa

Messaggio da rik70 »

P.s.

La compressione LZ4 non è attiva di default.

Subito dopo il caricamento del modulo e prima di ogni altra cosa:

Codice: Seleziona tutto

echo lz4 > /sys/block/zram0/comp_algorithm
Comunque è tutto spigato per bene nella documentazione del kernel alla voce 'blockdev/zram.txt'.

Avatar utente
conraid
Staff
Staff
Messaggi: 13630
Iscritto il: gio 14 lug 2005, 0:00
Nome Cognome: Corrado Franco
Slackware: current64
Desktop: kde
Località: Livorno
Contatta:

Re: Swap in ram e compressa

Messaggio da conraid »

Sinceramente ho gli stessi dubbi di Emanuele. Non riesco a vederne l'utilità. Se pensi che la ram ti basti e non vuoi swap su file semplicemente toglilo. Se non basta, ancor di più vale il discorso di non utilità. Forse mi manca qualche prospettiva però :-)

rik70
Iper Master
Iper Master
Messaggi: 2492
Iscritto il: gio 10 mar 2011, 9:21
Slackware: 15.0
Kernel: 5.15.x-generic
Desktop: Sway
Distribuzione: Arch Linux

Re: Swap in ram e compressa

Messaggio da rik70 »

conraid ha scritto:Sinceramente ho gli stessi dubbi di Emanuele. Non riesco a vederne l'utilità. [...] Forse mi manca qualche prospettiva però :-)
E' la ragione per cui ho aperto la discussione: sentire i vostri pareri perché anch'io ho molti dubbi :)

Ma andiamo con ordine:
Se pensi che la ram ti basti e non vuoi swap su file semplicemente toglilo.
La ram non basta. Il sistema swappa, di qualche decina di megabyte non di più. Firefox è il responsabile numero uno.
Se non basta, ancor di più vale il discorso di non utilità.
No, perché il punto dolente è che se swappa su disco il sistema diventa meno reattivo.

Il concetto è questo: "devi swappare? Bene, allora ti obbligo finché riesco a tenere tutto in ram, sacrificando un po di memoria". Che poi bisogna vedere a quanto ammonta questo sacrificio: leggendo la documentazione si dovrebbe vedere in '/sys/block/zram0/mem_used_total', anche se non ho capito in cosa è espresso il valore che si legge. Se fosse byte, al momento sono 5.8 megabyte.

Comunque, son tornato al vm.swappiness predefinito (60) e al momento ho 10Mb di swap. Se supera i 256MB - mai visto - e va a pescare sulla partizione, tolgo tutto :)

Shuren
Linux 0.x
Linux 0.x
Messaggi: 34
Iscritto il: dom 22 apr 2007, 19:55
Nome Cognome: Michele Barbiero
Slackware: Current
Località: Latisana (UD)
Contatta:

Re: Swap in ram e compressa

Messaggio da Shuren »

In questi giorni sto testando anch'io zram. Ho un EeeBox con 4 Gb di ram, di cui 3 a mia disposizione (512 Mb sono per la memoria grafica, altri 512 per un tipo di bug o feature che affligge Nvidia Ion). Swappiness a 20 e KDE. Senza swap finché non ho cominciato a compilare Firefox. Vari test finché, con un po' di manica larga, mi sono attestato sui 3 Gb di swap.

Da subito su un file di swap per la mancanza di partizioni libere. Quando un sistema swappa su disco per forza di cose perde in prestazioni. E swappa anche quando sembra non servire. Ma il concetto di cache è uno dei punti di forza di Linux: tiene occupata parte di ram come cache delle applicazioni appunto. Modificare vm.swappiness serve a chiedere al kernel di limitare l'uso della cache, svuotandola più velocemente e limitando l'uso di swap. Compcache/zram serve semplicemente per limitare la perdita di prestazioni. E a questo punto, ad utilizzare la ram in maniera più efficace.

Avatar utente
Rama
Linux 3.x
Linux 3.x
Messaggi: 554
Iscritto il: sab 29 mar 2008, 12:18
Slackware: 15.0 x86_64
Kernel: 5.15.117
Desktop: KDE 5.23
Distribuzione: linuxmint-21.1-xfce
Località: Novara, provincia

Re: Swap in ram e compressa

Messaggio da Rama »

sono perplesso, non creo la partizione di swap fin da quando ho messo 2 giga di RAM (mo' mi sono allargato a 4);
uso KDE con gli effetti spezziali attivati e non ricordo di aver mai superato il giga di RAM occupata, almeno nell'uso normale: dolphin, gkrellm, amule, firefox e thunderbird in azione;
di certo se aprissi dozzine di schede in firefox il giga lo supererei di sicuro, ma non riesco ad immaginare i motivi per cui sarebbe necessario;

r

Shuren
Linux 0.x
Linux 0.x
Messaggi: 34
Iscritto il: dom 22 apr 2007, 19:55
Nome Cognome: Michele Barbiero
Slackware: Current
Località: Latisana (UD)
Contatta:

Re: Swap in ram e compressa

Messaggio da Shuren »

Eseguito test di compilazione di Firefox. Out of memory. Nell'uso quotiiano nessun problema. Quindi, tiriamo le somme: zram funziona egregiamente nelle situazioni di uso quotidiano SOHO su macchine con poca ram e di qualche anno fa. Per usi più spinti, di fatto, file o partizione di swap è necessaria.

rik70
Iper Master
Iper Master
Messaggi: 2492
Iscritto il: gio 10 mar 2011, 9:21
Slackware: 15.0
Kernel: 5.15.x-generic
Desktop: Sway
Distribuzione: Arch Linux

Re: Swap in ram e compressa

Messaggio da rik70 »

Sì, la swap va tenuta almeno come backup.

Ora comunque sono su con il kernel 3.17, niente zram, patchset di Colivas e scheduler BFQ.

Minch** fa paura :o

42MB di swap su disco in uso e rimane una scheggia. Per non parlare dell'audio in real-time: threadirqs abilitato, rtprio della scheda audio a 85, 5.3ms di latenza e non si schioda di un millimetro.

Non so di chi sia il merito, ma c'è di che godere :)

Rispondi