In questa pagina descriverò come attivare un file swap (file
di scambio) su un router (Asus RT-AC56U)
- useremo un'installazione Entware, pertanto
fate riferimento a questa pagina su come installare Entware su un router.
Il file swap è usato per aumentare la memoria fisica disponibile (RAM) con un
memoria virtuale (SWAP) allo scopo di avere più risorse e per fare in modo che i
servizi abbiano più memoria disponibile per essere eseguiti. Un file swap viene
creato su un'unità disco esterna USB. Possiamo scegliere due differenti posti
dopo memorizzare e gestire il file swap. Un posto è all'interno della cartella "/opt" (questa
è la cartella radice di un'installazione
Entware), l'altro è all'interno della cartella radice dell'unità esterna USB
montata (la posizione della cartella radice viene memorizzata all'interno delle
impostazioni del router). Per creare il file swap useremo alcuni script. Diamo
uno sguardo al primo script che crea il file swap nella cartella "/opt"
e lo attiva:
#!/bin/sh DIR_DL="/opt/swap" # look for file existence if [ ! -e "$DIR_DL" ]; then # create a 256MB swap file ("count" is in Kilobytes) dd if=/dev/zero of=$DIR_DL bs=1k count=262144 # set up the swap file mkswap $DIR_DL fi # enable swap swapon $DIR_DL
Dentro il suddetto script, il file "swap" (il nome di file del file swap),
assieme al percorso "/opt", viene messo all'interno della variabile "DIR_DL".
Controlliamo se il file esiste, se non esiste creiamo un file vuoto la cui
dimensione è pari a 256 MB.
L'istruzione "mkswap" viene usata per rendere il file un file
swap, in questa maniera il sistema operativo capisce che questo file deve essere
usato come file swap.
L'ultima istruzione "swapon" semplicemente attiva il file swap.
Uno script alternativo per creare il file swap è il seguente:
#!/bin/sh SWAP_FOLDER=`nvram get apps_mounted_path` DIR_DL="$SWAP_FOLDER/swap" # look for file existence if [ ! -e "$DIR_DL" ]; then # create a 256MB swap file ("count" is in Kilobytes) dd if=/dev/zero of=$DIR_DL bs=1k count=262144 # set up the swap file mkswap $DIR_DL fi # enable swap swapon $DIR_DL
Il suddetto script è simile al primo, ma in questo caso noi leggiamo le
impostazioni del router usando l'istruzione "nvram" allo scopo di
recuperare la cartella radice dell'unità esterna USB montata. Il nome di questa
cartella di solito inizia con "/tmp/mnt" poiché questa cartella è la
cartella radice di tutte le unità disco esterne USB montate dal router. Il resto
dello script è lo stesso del primo script.
Dopo aver creato lo script per creare ed attivare il file swap, lo dobbiamo
eseguire ogni qualvolta inseriamo l'unità disco esterna USB, cortesemente
leggete la sezione "Come
installare Entware su un router" su come eseguire uno script ogni
qualvolta un'unità disco esterna USB viene montata.
Inoltre noi abbiamo bisogno di creare un altro script per disattivare il file
swap ogni qualvolta rimuoviamo l'unità disco esterna USB. In questo caso ci
basta usare l'istruzione "swapoff"
per disattivare il file swap.
Il primo script file usa la cartella "/opt" per disattivare il file swap:
#!/bin/sh DIR_DL="/opt/swap" # disable swap swapoff $DIR_DL
Il secondo script legge le impostazioni del router allo scopo di sapere dov'è il file swap:
#!/bin/sh SWAP_FOLDER=`nvram get apps_mounted_path` DIR_DL="$SWAP_FOLDER/swap" # disable swap swapoff $DIR_DL
All'interno del router esiste un comando per sapere quanta memoria swap è usata e disponibile, questo comando è denominato "free", ciò che segue è un esempio di risultato di questo comando:
free total used free shared buffers Mem: 255892 54432 201460 0 168 Swap: 262140 0 262140 Total: 518032 54432 463600
Possiamo anche usare il comando "cat /proc/swaps" per conoscere tutte le informazioni sul file swap, ciò che segue è un esempio di risultato di questo comando:
cat /proc/swaps Filename Type Size Used Priority /opt/swap file 262140 59256 -1