Raspberry Pi ha una quantità limitata di RAM e non è possibile aggiungerne altre poiché è un computer a scheda singola. Il Pi 3 ha solo 1 GB di RAM. Il Pi 4, a seconda del modello, ha fino a 8 GB di RAM. Le applicazioni software a volte richiedono più memoria. Il più delle volte questo requisito di memoria è un breve picco. Quando ciò accade, il Raspberry Pi si "bloccherà" o "si arresterà in modo anomalo" a causa della memoria limitata. L'arresto anomalo potrebbe anche causare il danneggiamento della scheda SD, con conseguente perdita di dati.

Per evitare la possibilità di un arresto anomalo, sul Pi è possibile configurare la memoria virtuale sotto forma di swap. La giusta quantità deve essere aggiunta sul dispositivo corretto per ottenere il meglio da esso. L'intero processo viene spiegato sistematicamente con istruzioni per vari sistemi operativi.

Capire come funziona il processo di memoria

La RAM è la memoria fisica. Sul Pi 4, si trova accanto al processore. Sul Pi 3, la RAM è posizionata sul lato inferiore del circuito stampato. A differenza delle normali schede madri, la RAM su un Raspberry Pi è saldata alla scheda, il che limita la possibilità di aumentarne la capacità.

instagram viewer

Quando un'applicazione software viene eseguita, utilizza una parte della RAM per il suo funzionamento. Pensa a un browser come esempio. Quando una pagina Web viene caricata in una scheda, memorizza i dati della pagina nella RAM insieme alla memoria necessaria per eseguire il programma browser. Quando vengono caricate più schede, la RAM viene riempita altrettanto. Senza memoria virtuale, a un certo punto la RAM esaurirà la capacità e le nuove schede non possono essere caricate affatto. Anche la navigazione nelle schede esistenti rallenterà notevolmente poiché non c'è memoria libera per le operazioni di base. A questo punto, il Pi smetterà di rispondere e l'unico modo per ripristinarlo è spegnere e riaccendere (spegnendo e riaccendendo).

Questo arresto casuale può causare seri problemi, specialmente quando il sistema operativo è sulla scheda SD. La scheda potrebbe rimanere bloccata nello stato di "sola lettura" o, nel peggiore dei casi, danneggiarsi del tutto. Questo è quando si verifica la perdita totale di dati.

L'impatto della condizione di "memoria insufficiente (OOM)" può essere ridotto al minimo configurando lo scambio da utilizzare come memoria virtuale. Lo scambio può essere impostato sotto forma di file o partizione sul disco e funge da estensione della RAM. Quando la RAM disponibile si è esaurita, i dati utilizzati di rado vengono spostati per lo scambio in un processo chiamato scambio. Nel caso dell'esempio del browser, questi sarebbero i dati di una scheda caricata che è meno utilizzata. Quando la scheda viene nuovamente attivata, questi dati verranno spostati nuovamente nella RAM per mostrare la pagina web.

Lo scambio porterà stabilità per le operazioni ad alta intensità di memoria. Se si verifica un breve picco nel consumo di memoria, lo scambio aiuterà ad assorbire il picco e mantenere il sistema in funzione invece di finire in un blocco totale.

Scegliere il dispositivo giusto per configurare Swap

Lo scambio è essenziale, ma anche la posizione e la dimensione dello scambio da configurare sono altrettanto importanti. Idealmente, lo scambio deve avvenire su un dispositivo veloce. Accanto alle cache del processore, la RAM è la seconda memoria più veloce. DDR4 sul Pi ha una larghezza di banda di 4,4 GBps (gigabyte al secondo). Lo scambio deve essere su uno degli altri dispositivi di archiviazione disponibili.

Se viene utilizzata una scheda SD per il sistema operativo, per impostazione predefinita viene configurata una piccola area di scambio. Puoi verificarne le dimensioni usando il comando:

libero -m

99 MB non è una quantità significativa di swap. Si riempirà abbastanza velocemente. Le schede SD hanno cicli di scrittura limitati poiché utilizzano la memoria flash e uno scambio eccessivo potrebbe ridurne la durata. Inoltre, hanno una larghezza di banda ridotta di circa 50 MBps con prestazioni di lettura/scrittura di file 4k molto inferiori, essenziali per lo scambio di file più piccoli.

I dischi rigidi contengono dischi rotanti. Sebbene affidabili, hanno tempi di ricerca più elevati e non sono utili per lo scambio.

Un SSD economico per il sistema operativo è una scelta ragionevolmente migliore. Gli algoritmi di livellamento dell'usura riorganizzano i dati dalle celle flash usurate e ne prolungano la vita. Su un Pi, la larghezza di banda SSD è disponibile 150 Mbps e ha prestazioni di file 4k molto migliori rispetto alle schede SD. Anche la velocità di ricerca è buona. Ma utilizzando lo stesso disco per operazioni simultanee di swap e colli di bottiglia del sistema operativo. Poiché lo swap esegue scritture intensive, il disco può raggiungere i TBW (byte totali scritti) prima del previsto, specialmente su SSD a bassa capacità.

Idealmente, il Pi ha bisogno del suo sistema operativo e dello scambio su unità diverse, un disco del sistema operativo e un SSD dedicato per lo scambio. Ciò darebbe longevità al disco del sistema operativo e velocità per lo scambio. Inoltre, la larghezza di banda sarà disponibile per entrambi contemporaneamente poiché sono dispositivi diversi.

Come configurare lo scambio sui sistemi operativi Raspberry Pi

Il modo migliore per configurarlo dipende dal sistema operativo utilizzato dal dispositivo.

Sistema operativo desktop (sistema operativo Raspberry Pi, Ubuntu Desktop e Ubuntu Mate)

Collegare l'SSD da utilizzare come swap utilizzando a Adattatore da USB 3.0 a SATA III e avvia il Pi. Il processo mostrato qui è implementato sul sistema operativo Raspberry Pi e dovrebbe funzionare ugualmente bene sugli altri sistemi operativi. Nel caso il tuo sistema operativo Raspberry Pi deve essere aggiornato, fallo.

Installa lo strumento necessario per gestire i dischi utilizzando la GUI

sudo apt installare utilità-disco-gnome

Aprire Dischi da Inizio > Accessori.

Puoi anche usare questo comando nel terminale per aprire lo strumento:

gnomi-dischi

Formatta l'SSD dal menu.

Crea una partizione usando il controllo con + simbolo

L'intera partizione può essere assegnata per lo scambio, ma sarebbe sufficiente un massimo del doppio della RAM.

Assegna un nome al volume e seleziona Altro per il Tipo di partizione.

Selezionare Partizione di scambio Linux e crealo.

Puoi montarlo subito facendo clic sul pulsante di controllo con il Giocare a simbolo. Si monterà durante questa sessione ma non si bloccherà tra i riavvii. Deve essere impostato per il montaggio automatico. Clicca il Ingranaggio controllare e selezionare Modifica le opzioni di montaggio.

Attiva/disattiva Predefinito sessione utente e fare clic OK. Authenticate and Disks aggiungerà una voce a /etc/fstab per montarlo ad ogni avvio.

Riavvia il Pi, apri il terminale e controlla la nuova dimensione di scambio:

libero -m

Impostazioni aggiuntive solo per il sistema operativo Raspberry Pi

Ora che lo swap è configurato su un SSD, il vecchio swap non è necessario. Puoi disattivarlo modificando:

sudo nano /etc/dphys-swapfile

Impostare questo parametro a zero:

CONF_SWAPSIZE=0

Sistema operativo server (sistema operativo Ubuntu, Raspberry Pi)

Questo processo avviene tramite CLI. Per facilità, puoi preparare la partizione di scambio utilizzando lo strumento Dischi su un altro computer, quindi collegare l'SSD al Pi e avviare il server. Connettiti al Pi usando SSH procedere.

Trova la partizione di swap:

lsblk

sda1 è. Trova l'UUID di questo dispositivo: sda1

nero

Copia il UUID (unico per te) e modifica il file fstab per montarlo automaticamente ad ogni avvio:

sudo nano /etc/fstab

Aggiungi questa riga:

UUID=IL TUO UUID nessuno scambia il software 0 0

Salva, riavvia e controlla la dimensione dello scambio:

libero -m

Ottimizzazione dell'uso della memoria virtuale per operazioni a prova di crash

Lo scambio configurato deve essere sfruttato al meglio. Questo viene fatto impostando un parametro chiamato swappiness. Per trovare il valore corrente:

cat proc/sys/vm/swappiness

Impostato su 60 per impostazione predefinita, il valore definisce l'aggressività con cui il kernel scambia i contenuti dalla RAM. Può essere impostato tra 1 e 100. Il valore adatto dipende dalla tua specifica esigenza. Se vedi che il Pi sta esaurendo costantemente la RAM, impostalo su 100. In caso contrario, impostarlo su un valore inferiore. Modifica questo file per impostarlo:

sudo nano /etc/sysctl.conf

Aggiungi questa riga alla fine:

vm.swappiness=100

Avvertenze sul sovraccarico di elaborazione e TBW SSD

Lo scambio operativo richiede potenza di elaborazione, di solito uno dei quattro core del Pi si dedica allo scambio quando la RAM è completamente piena.

Il consiglio generale che circola è di non utilizzare SSD per lo scambio, è vero per il caso in cui il sistema operativo (insieme ai dati utente) e lo scambio si trovano sullo stesso disco. Non si applica in questo caso quando lo scambio è impostato come spiegato qui. Sebbene l'SSD utilizzato alla fine supererà il suo TBW e si guasterà, può semplicemente essere sostituito con uno nuovo poiché non ci sono dati importanti memorizzati su di esso con questo processo.

Scambia il vantaggio per il tuo Pi

Configurare lo scambio a destra è un ottimo modo per rendere il Pi a prova di crash. La stabilità è dovuta al fatto che la memoria disponibile complessiva è un fattore più significativo della velocità della memoria durante l'OOM. Il Pi non si bloccherà e una volta che l'utilizzo del picco diminuisce, risponderà di nuovo più rapidamente.

Raspberry Pi è un piccolo computer con grande flessibilità. Può essere utilizzato per scopi diversi con vari sistemi operativi leggeri. Pi 4 funge anche da sostituto dei normali computer e anche un dispositivo integrato per uso industriale in grado di funzionare 24x7.