Differentemente da TrueNAS Core con base BSD, la gestione della cache avviene in modo differente. Come sappiamo ZFS richiede un quantitavo oneroso di RAM per poter gestire al meglio il sistema… In questa guida andremo a vedere come fare il tuning di TrueNAS Scale ARC Memory Cache e lasciare abbastanza risorse disponibili per eventuali applicazioni o servizi aggiuntivi.
TrueNAS Scale ARC Memory Cache
Il sistema operativo di TrueNAS Scale, di default, occupa esattamente metà della RAM disponibile come Cache
Come è possibile vedere (nel nostro caso), la memoria disponibile rimane un pò risicata… Tenendo conto che vi sono alcune applicazioni containerizzate che sono attive, rimane poco margine prima di saturare l’intera RAM.
ARC Memory Cache impostata di default
Per prima cosa andiamo a verificare quale sia il valore massimo consentito di cache del sistema operativo.
Collegatevi in SSH al sistema oppure tramite <System Settings> => <Shell>
Il seguente comando risponderà a questa domanda:
cat /sys/module/zfs/parameters/zfs_arc_max
Come potete notare il valore è “0”; ciò significa che il sistema utilizzerà il 50% della RAM disponibile come cache
Ora dovremo decidere quanti bytes dedicare al massimo per la cache
Ci raccomandiamo di scegliere attentamente il valore (IN BYTES) onde evitare un crash del sistema causato da un valore troppo basso o troppo alto
Nel nostro esempio il sistema è dotato di 12 GB di RAM e imposteremo una cache massima di 5 GB contro i 5,8 GB di default
Per trovare il valore corretto di bytes, vi rimandiamo a questo link, vi basterà inserire il valore in GB nel campo sopra Gigaytes e copiare il relativo valore in bytes.
Nel nostro esempio quindi il valore massimo di cache consentita al sistema sarà di 5368709120
Modifica ARC Memory Cache
Ora procediamo alla modifica della cache, tornate sulla schermata della shell ed eseguite il seguente comando SOSTITUENDO IL VALORE DOPO “echo” CON QUELLO DA VOI SCELTO
echo 5368709120 >> /sys/module/zfs/parameters/zfs_arc_max
Per confermare che il valore sia effettivamente variato, verificatelo con il comando precedente:
cat /sys/module/zfs/parameters/zfs_arc_max
Come noterete ora il valore sarà quello che avete impostato
Applicazione ARC Memory Cache al riavvio
Non manca che indicare al sistema operativo di mantenere il valore modificato di cache sempre; si perchè con i comandi che avete appena visto, la modifica è temporanea e verrà resettata al valore di default (“0” ovvero il 50% della RAM disponibile) ad ogni riavvio.
Andiamo sotto <System Settings> => <Advanced>
Ora cliccate su <Add> presente nella sezione <Init/Shutdown Scripts>
Chiudete l’avviso di Warning (Changing Advanced settings can be dangerous when done incorrectly. Please use caution before saving.)
Ora impostate i seguenti parametri:
- Description: una descrizione a vostra scelta, nell’esempio Set Arc size
- Type: Command
- Command (inserendo i vostri valori di cache): echo 5368709120 >> /sys/module/zfs/parameters/zfs_arc_max
- When: Post Init
- Enabled: spuntato
- Timeout: 10
Infine salvate cliccando <Save>
Non vi resta che verificare dalla Dashboard che tutto sia impostato correttamente e continuare ad utilizzare il vostro TrueNAS.