Immediatamente, i server Vultr FreeBSD non sono configurati per includere lo spazio di scambio. Se la tua intenzione è per un'istanza cloud usa e getta, probabilmente non devi preoccuparti di questo. Se hai creato un server "reale" che rimarrà per un po ', continua a leggere.
Anche il server ridicolmente decorato richiede spazio di swap. Ecco come funziona il sistema operativo. In quei momenti in cui la tua app diventa un po 'fuori di testa e consuma più RAM del dovuto, avere lo spazio di scambio ti darà la possibilità di combattere per riprendere il controllo della macchina. Anche durante il normale funzionamento, FreeBSD è proattivo sulla gestione della memoria. Ad esempio, i programmi a esecuzione prolungata che rimangono inattivi in memoria verranno scambiati su disco per fare spazio a cose utili, come le cache del filesystem. L'esecuzione con zero swap è una ricetta per comportamenti imprevedibili, e nessuno che esegue un server lo desidera!
Conferma lo stato dello scambio
Prima di fare qualsiasi cosa, assicuriamoci di non avere alcuno scambio.
swapinfo
non dovrebbe restituire nulla. Così:
vultr [~]# swapinfo
Device 1K-blocks Used Avail Capacity
vultr [~]#
Se effettivamente è vuoto, continuiamo e rendiamoci un file di scambio. Ma prima...
Quanto swap è necessario?
Le vecchie regole empiriche (1x RAM, 2x RAM, .5x RAM, ecc.) Non si applicano in questi giorni. Se il tuo server ha 16 GB di memoria, sicuramente non è necessario sprecare 32 GB del tuo prezioso spazio su disco in un file di scambio. Detto questo, se hai i crash dump abilitati, a seconda di come è configurato, potrebbe essere necessario avere uno scambio uguale alla tua memoria affinché funzioni.
Quindi, quanto è grande fare il file di scambio dipende davvero da te. La buona notizia è che puoi sempre cambiarlo in un secondo momento e con l'archiviazione supportata da SSD non devi preoccuparti troppo di dove finisce sul tuo disco. Comunque, passiamo a ...
Creazione e utilizzo di un file di scambio
Creeremo un file di scambio da 512 mega situato in /usr/swap0
. Sentiti libero di cambiare tutto ciò se non funziona per te. Ad esempio, se si desidera 1 concerto di swap, cambiare da 512 a 1024 e così via. Se decidi di cambiare il nome del file, assicurati di cambiare entrambi i riferimenti.
Copia con attenzione quanto segue, eseguilo come root e sarai pronto:
dd if=/dev/zero of=/usr/swap0 bs=1m count=512
chmod 0600 /usr/swap0
echo "md99 none swap sw,file=/usr/swap0,late 0 0" >> /etc/fstab
swapon -aL
Conferma che ha funzionato:
vultr [~]# swapinfo
Device 1K-blocks Used Avail Capacity
/dev/md99 524288 0 524288 0%
A questo punto, sei pronto. Lo swap è attivo e continuerà a funzionare dopo il riavvio.
Spiegazione per i curiosi
Il dd
comando crea il file effettivo. Dopodiché, impostiamo le autorizzazioni appropriate, aggiungiamo una linea a /etc/fstab
per lo scambio e quindi la accendiamo. Il comando swapon -aL
dice al sistema operativo di attivare tutte le partizioni / i file di swap in fstab, inclusi quelli contrassegnati come in ritardo. A causa del modo in cui FreeBSD 10.2 si avvia, il file di scambio deve essere montato in ritardo. Quando il sistema operativo si avvia normalmente, lo swap verrà attivato durante la fase di "montaggio dei filesystem in ritardo".