Risparmio
In Server › Risparmio vedi quanta RAM usa davvero il server e accendi, una per una o tutte insieme con Attiva tutte, le ottimizzazioni che la liberano senza toccare i siti. Ogni voce si spegne con Disattiva e il server torna com'era.
Quanta RAM usa davvero il server
I tre riquadri in alto mostrano:
- RAM in uso davvero: la RAM occupata dai programmi. La cache dei file non è contata, perché il sistema la libera da solo quando serve.
- RAM liberata dal pannello: la somma di quello che le ottimizzazioni hanno liberato. Il pannello misura i processi che ferma nel momento in cui li ferma: è un dato misurato, non una stima.
- Swap: quanta ne è in uso e, con la RAM compressa accesa, quanto spazio prendono in RAM le pagine compresse rispetto a quello che occupavano prima.
Dove va la RAM divide la memoria fra siti, PHP, database, posta, server web, DNS, pannello, sistema e kernel. Per ogni programma conta la memoria che tiene davvero: una pagina condivisa da più processi viene contata una volta sola, e i file dei programmi già letti dal disco (librerie, eseguibili) non sono contati, perché sono cache che il sistema riprende da solo. Kernel e buffer è il resto della RAM in uso, quella che nessun programma tiene (il kernel, le sue tabelle e i file temporanei tenuti in RAM): i gruppi sommati danno la RAM in uso del primo riquadro.
RAM dei siti adesso elenca i siti che in questo momento hanno processi accesi (PHP, cron, applicazioni). È normale che la lista sia vuota o corta: i processi PHP di un sito si chiudono 10 secondi dopo l'ultima richiesta, quindi un sito senza visite non occupa RAM.
RAM compressa (zswap)
Quando la RAM serve ad altro, il sistema sposta le pagine usate di rado nella swap. Con zswap queste pagine restano prima in RAM, compresse (zstd, di solito 2–3 volte più piccole, al massimo il 20% della RAM), e arrivano sul disco solo quando quella parte è piena. È molto più veloce del disco, che viene anche scritto di meno.
Se il server non ha abbastanza swap, il pannello crea il file /var/lib/koapanel-swap: metà della RAM, da 1 a 8 GB, mai più di un quarto dello spazio libero e lasciando sempre almeno 5 GB liberi. Il file va su ext4 o XFS (su AlmaLinux e Rocky Linux il pannello gli assegna l'etichetta SELinux giusta). Se il server ha già una swap del fornitore, il pannello aggiunge solo quello che manca. Spegnendo la voce il file viene tolto, mentre la swap che c'era prima resta.
Senza swap, quando la RAM finisce il kernel chiude dei processi per liberarla, a volte proprio il database. Non è disponibile nei container (LXC, OpenVZ), dove la memoria la gestisce il server che li ospita.
PHP fermo per le versioni senza siti
Ogni versione di PHP installata accende il suo PHP-FPM con un processo principale e i due processi di riserva del pool www di sistema, anche se nessun sito la usa: sul server di prova del pannello, tre versioni senza siti occupavano 41 MB. Con questa voce il pannello ferma le versioni che non servono a nessun sito, a phpMyAdmin, ad Adminer o alla webmail, e ripete il controllo ogni 5 minuti e dopo ogni riavvio.
Quando un sito passa a una versione ferma (o la crei con quella versione), il pannello la riaccende da solo prima di scrivere il pool del sito: non devi fare niente. Nella pagina Server le versioni ferme compaiono come idle, non come servizi fermi per errore. Spegnendo la voce, le versioni ferme ripartono.
Servizi di sistema inutili
Ubuntu accende alcuni servizi che servono a un computer o a un server con hardware particolare, non a un server web. Il pannello blocca (systemctl mask) solo quelli che trova e solo quando non servono:
fwupd(aggiornamento del firmware), solo sulle macchine virtuali: un server fisico lo tiene;ModemManager(modem),udisks2(dischi rimovibili),upower(batterie);multipathd(dischi multipath), solo se il server non ha dischi multipath.
Spegnendo la voce i servizi vengono sbloccati e quelli che erano accesi ripartono.
PHP a richiesta per account
Con il modulo Isolamento e limiti ogni account ha il suo PHP. A richiesta, il PHP di un account parte alla prima visita e si ferma dopo un po' senza visite (15 minuti di base, si cambia nella pagina del modulo). La prima visita dopo una pausa aspetta qualche decimo di secondo. È la stessa impostazione della pagina Isolamento: accenderla da qui o da lì è uguale. Senza il modulo la voce non è disponibile e non serve, perché i pool dei siti sono già a richiesta e chiudono i processi 10 secondi dopo l'ultima richiesta.
Disco
La sezione Disco mostra su che file system stanno i siti, quanto spazio è libero e quanto ne hanno recuperato le voci qui sotto.
Posta compressa
Dovecot salva i messaggi compressi (zstd) e li decomprime quando qualcuno li apre. Per chi usa la posta non cambia niente: i programmi di posta e la webmail vedono gli stessi messaggi, e lo spazio contato nelle caselle (la quota) resta quello dei messaggi non compressi. Cambia solo lo spazio occupato sul disco. Sul server di prova del pannello 2,8 GB di posta vera sono diventati 1,9 GB: i messaggi sono passati da 2086 a 1221 MB (−41%), e Dovecot li rilegge identici all'originale.
Quando accendi la voce, il pannello comprime anche i messaggi che ci sono già, in sottofondo e una cartella alla volta. Ogni cartella resta bloccata solo per il tempo di sostituire i file, e i messaggi conservano nome, data e proprietario. Non vengono toccati i messaggi arrivati nell'ultima ora (li prende il giro successivo, con Comprimi i messaggi esistenti), quelli più piccoli di 4 KB e quelli che si comprimono meno del 10%.
Spegnendo la voce i messaggi nuovi tornano a essere salvati normali, mentre quelli già compressi restano compressi e si leggono come prima. Prima di spostare un account con la posta compressa, il server di destinazione deve avere almeno questa versione del pannello: se è più vecchio lo spostamento viene bloccato con un messaggio.
File uguali dei siti condivisi
Molti file sono identici in tanti siti: il nucleo di WordPress, i plugin e i temi più diffusi, le librerie in vendor/ e node_modules/. Su XFS (il file system predefinito di AlmaLinux e Rocky Linux) e su Btrfs, il pannello chiede al kernel di far condividere a questi file gli stessi blocchi del disco. È il kernel a confrontarli byte per byte prima di unirli, quindi due file diversi non vengono mai uniti.
Per i siti non cambia niente. Ogni file resta del suo sito, con il suo proprietario, i suoi permessi e le sue date. Se un sito modifica un file condiviso (per esempio aggiornando WordPress), riceve una copia sua dei blocchi che cambia. Anche lo spazio contato negli account resta lo stesso: è il server a risparmiare.
Accesa, la voce lavora ogni settimana; Condividi ora la fa partire subito. Vengono considerati i file da 16 KB in su, non modificati negli ultimi 10 minuti, fuori dalle cartelle tmp e logs dei siti. Sul server di prova, 10 siti WordPress (versioni 6.6, 6.7 e 7.1, in tre lingue) occupavano 1,1 GB su XFS e sono scesi a 458 MB; su Btrfs da 1 GB a 382 MB.
Su ext4 (il predefinito di Ubuntu) i blocchi non si possono condividere: il pulsante Misura dice quanto si risparmierebbe con XFS o Btrfs, utile se stai preparando un server nuovo.
Pulizia
Analizza misura quello che si può togliere senza che manchi a nessuno, poi scegli cosa pulire. Non vengono mai toccati il contenuto dei siti, la posta o i database.
- Pacchetti già installati: le copie che apt o dnf hanno scaricato per gli aggiornamenti già fatti.
- Registro di sistema: il journal di systemd oltre i suoi ultimi 100 MB.
- Avanzi di siti cancellati: copie WordPress e aree dei backup di siti che non esistono più.
- File temporanei dei siti: sessioni PHP e caricamenti rimasti nella cartella
tmpdel sito da più di 2 giorni. - Avanzi degli aggiornamenti WordPress: il contenuto di
wp-content/upgradeewp-content/upgrade-temp-backuppiù vecchio di un giorno. - Registri di debug:
wp-content/debug.logdi WordPress e i fileerror_logdi PHP più grandi di 1 MB.
Nelle cartelle dei siti il pannello cancella i file come utente del sito, quindi non può togliere niente che il sito stesso non potrebbe togliere, e non segue mai i collegamenti simbolici.