Le pagine dei piani mettono in primo piano la RAM, ma un disco pieno manda giù un server con la stessa sicurezza. Con "No space left on device" i database smettono di scrivere e i siti di rispondere, a prescindere da quanta memoria sia libera. L'uso del disco si prevede facilmente se sai cosa cresce. Abbiamo avviato server nuovi dalle nostre immagini e misurato ognuno dei soliti sospetti.
Cosa occupa un server appena creato
Misurato subito dopo il primo avvio:
| Sistema | Spazio occupato |
|---|---|
| Alpine Linux 3.21 | 153 MB |
| Debian 12 | 1,2 GB |
| Ubuntu 24.04 | 2,7 GB |
| Windows Server 2022 | 14,0 GB |
Su Linux, quasi tutto un Nano da 15 GB è tuo dal primo giorno. Windows occupa più di un quarto dei suoi 50 GB prima che tu installi qualsiasi cosa e, come vedrai più sotto, gli aggiornamenti ne prendono di più.
Una parte dei 2,7 GB di Ubuntu si recuperava facilmente. 440 MB erano la cache dei pacchetti degli aggiornamenti del primo avvio, e c'erano tre kernel installati anche se se ne usa uno. Due comandi hanno portato l'occupato a 2,16 GB:
sudo apt clean
sudo apt autoremove --purge
Docker: le immagini si accumulano in fretta
Installare Docker di per sé ha aggiunto circa 300 MB. Contano le immagini. Ne abbiamo scaricate otto comuni, una dopo l'altra, misurando ogni volta di quanto cresceva il disco:
| Immagine | Spazio aggiunto |
|---|---|
nginx:alpine | 91 MB |
nginx:latest | 232 MB |
postgres:16 | 501 MB |
python:3.12-slim | 59 MB |
node:22 | 1.564 MB |
mariadb:11 | 437 MB |
wordpress:latest | 960 MB |
redis:7-alpine | 55 MB |
| Totale | 3,9 GB |
Le immagini con una base comune ne riutilizzano i layer: per questo python:3.12-slim ha aggiunto solo 59 MB, dato che nginx:latest e postgres:16 avevano già portato la stessa base Debian. Le immagini basate su Alpine sono diverse volte più piccole di quelle complete. Solo node:22 pesa 1,5 GB, quindi quando puoi costruisci su node:22-slim o node:22-alpine.
Le immagini si accumulano con gli aggiornamenti: ogni docker compose pull lascia indietro la versione precedente. Sul nostro server di prova un comando le ha rimosse tutte:
docker system df
docker system prune -a
Ha riportato 4,1 GB recuperati. prune -a elimina ogni immagine non usata da alcun container, quindi eseguilo con il tuo stack in funzione. I volumi non vengono toccati, a meno che tu non aggiunga --volumes.
I log: ciò che riempie un disco in una notte
Docker conserva tutto ciò che un container stampa, e per impostazione predefinita senza limiti di dimensione. Abbiamo avviato un container che stampava una riga breve in un ciclo, il tipo di output di un health check o di una modalità debug. Dopo 30 secondi il suo file di log pesava 6 MB. A quel ritmo scriverebbe circa 17 GB al giorno, più dell'intero disco di un piano Micro.
Imposta un limite per tutti i nuovi container in /etc/docker/daemon.json:
{
"log-driver": "local",
"log-opts": { "max-size": "10m", "max-file": "3" }
}
Poi esegui sudo systemctl restart docker e ricrea i container (docker compose up -d --force-recreate). I container esistenti mantengono le impostazioni con cui sono stati creati. Con il limite, il log dello stesso container di prova pesava 4 MB dopo 30 secondi e non potrà mai superare 30 MB.
Il journal di sistema è già limitato: sul nostro server Ubuntu da 25 GB, journald si limita a 2,3 GB, un decimo del file system. Ne stava usando 15 MB.
Windows: gli aggiornamenti hanno bisogno di spazio
La nostra immagine di Windows Server 2022 era del 2022, quindi l'abbiamo aggiornata. Mentre si installava il primo aggiornamento cumulativo, l'occupato è salito da 12,6 a 20,8 GB, e dopo il secondo ha raggiunto 24,5 GB. Windows conserva la versione vecchia di ogni file di sistema che un aggiornamento sostituisce. La pulizia l'ha riportato a 14,6 GB, e un server nuovo creato dall'immagine aggiornata ora parte da 14 GB. Tieni liberi almeno 10 GB per il prossimo aggiornamento. La guida agli aggiornamenti di Windows ha i comandi di pulizia.
Cosa scegliere
| Cosa esegui | Disco comodo | Piano |
|---|---|---|
| Un bot, una VPN, un piccolo sito statico | 15 GB | Nano, $3/mese |
| Uno stack Docker con poche immagini | 25 GB | Micro, $5/mese |
| WordPress con database e upload, più stack | 35 GB | Small, $8/mese |
| Database grandi, molte immagini, backup locali | 45 GB | Medium, $12/mese |
| Windows Server 2022 | 50–60 GB | Windows-Small, $11/mese |
Due regole fanno durare di più qualunque piano: limita i log dei container prima del deploy e copia i backup fuori dal server invece di tenerli sul suo disco. Se un server è già pieno, la nostra guida per liberare spazio su disco ti accompagna passo per passo. Per la parte di memoria del dimensionamento, vedi quanta RAM serve a un VPS. Tutti i piani sono nella pagina VPS, e si pagano in USDT, USDC o ETH su Base, Ethereum o Polygon.
Commenti
Ancora nessun commento. Sii il primo.