Οι σελίδες των πακέτων βάζουν μπροστά τη RAM, όμως ένας γεμάτος δίσκος ρίχνει έναν server εξίσου σίγουρα. Με το "No space left on device", οι βάσεις δεδομένων σταματούν να γράφουν και τα sites να απαντούν, όση μνήμη κι αν είναι ελεύθερη. Η χρήση του δίσκου προβλέπεται εύκολα όταν ξέρετε τι μεγαλώνει. Ξεκινήσαμε καινούργιους servers από τα δικά μας images και μετρήσαμε κάθε έναν από τους συνήθεις υπόπτους.
Πόσο πιάνει ένας καινούργιος server
Μετρημένο αμέσως μετά την πρώτη εκκίνηση:
| Σύστημα | Χώρος σε χρήση |
|---|---|
| Alpine Linux 3.21 | 153 MB |
| Debian 12 | 1,2 GB |
| Ubuntu 24.04 | 2,7 GB |
| Windows Server 2022 | 14,0 GB |
Σε Linux, σχεδόν ολόκληρο ένα Nano των 15 GB είναι δικό σας από την πρώτη μέρα. Τα Windows πιάνουν πάνω από το ένα τέταρτο των 50 GB τους πριν εγκαταστήσετε οτιδήποτε, και όπως θα δείτε παρακάτω, οι ενημερώσεις παίρνουν περισσότερα.
Μέρος από τα 2,7 GB του Ubuntu επιστράφηκε εύκολα. Τα 440 MB ήταν η cache πακέτων από τις ενημερώσεις της πρώτης εκκίνησης, και υπήρχαν εγκατεστημένοι τρεις πυρήνες, ενώ χρησιμοποιείται ένας. Δύο εντολές έφεραν τη χρήση στα 2,16 GB:
sudo apt clean
sudo apt autoremove --purge
Docker: τα images μαζεύονται γρήγορα
Η εγκατάσταση του ίδιου του Docker πρόσθεσε περίπου 300 MB. Αυτό που μετράει είναι τα images. Κατεβάσαμε οκτώ δημοφιλή, το ένα μετά το άλλο, και κάθε φορά μετρούσαμε πόσο μεγάλωσε ο δίσκος:
| Image | Επιπλέον χώρος |
|---|---|
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 |
| Σύνολο | 3,9 GB |
Τα images με κοινή βάση ξαναχρησιμοποιούν τα layers της, γι' αυτό το python:3.12-slim πρόσθεσε μόνο 59 MB: την ίδια βάση Debian την είχαν ήδη φέρει τα nginx:latest και postgres:16. Τα images με βάση το Alpine είναι πολλές φορές μικρότερα από τα πλήρη. Μόνο το node:22 ζυγίζει 1,5 GB, οπότε όταν μπορείτε, χτίστε πάνω σε node:22-slim ή node:22-alpine.
Τα images στοιβάζονται με τις ενημερώσεις: κάθε docker compose pull αφήνει πίσω την παλιά έκδοση. Στον δοκιμαστικό μας server, μία εντολή τα αφαίρεσε όλα:
docker system df
docker system prune -a
Ανέφερε 4,1 GB που ελευθερώθηκαν. Το prune -a σβήνει κάθε image που δεν χρησιμοποιεί κανένα container, οπότε τρέξτε το όσο το stack σας λειτουργεί. Τα volumes δεν τα αγγίζει, εκτός αν προσθέσετε --volumes.
Logs: αυτό που γεμίζει έναν δίσκο σε μία νύχτα
Το Docker κρατά ό,τι τυπώνει ένα container, και από προεπιλογή χωρίς όριο μεγέθους. Τρέξαμε ένα container που τύπωνε μια σύντομη γραμμή σε βρόχο, το είδος της εξόδου που δίνει ένας έλεγχος υγείας ή μια λειτουργία αποσφαλμάτωσης. Μετά από 30 δευτερόλεπτα, το αρχείο καταγραφής του ήταν 6 MB. Με αυτόν τον ρυθμό θα έγραφε περίπου 17 GB τη μέρα, περισσότερο από ολόκληρο τον δίσκο ενός πακέτου Micro.
Ορίστε ένα όριο για όλα τα νέα containers στο /etc/docker/daemon.json:
{
"log-driver": "local",
"log-opts": { "max-size": "10m", "max-file": "3" }
}
Μετά τρέξτε sudo systemctl restart docker και δημιουργήστε ξανά τα containers σας (docker compose up -d --force-recreate). Τα υπάρχοντα containers κρατούν τις ρυθμίσεις με τις οποίες δημιουργήθηκαν. Με το όριο, το log του ίδιου δοκιμαστικού container ήταν 4 MB μετά από 30 δευτερόλεπτα και δεν μπορεί ποτέ να ξεπεράσει τα 30 MB.
Το ημερολόγιο του συστήματος έχει ήδη όριο: στον server μας με Ubuntu και δίσκο 25 GB, το journald περιορίζεται στα 2,3 GB, το ένα δέκατο του συστήματος αρχείων. Χρησιμοποιούσε 15 MB.
Windows: οι ενημερώσεις θέλουν χώρο
Το image μας του Windows Server 2022 ήταν από το 2022, οπότε το ενημερώσαμε. Όσο εγκαθιστούνταν η πρώτη αθροιστική ενημέρωση, η χρήση ανέβηκε από 12,6 σε 20,8 GB, και μετά τη δεύτερη έφτασε τα 24,5 GB. Τα Windows κρατούν την παλιά έκδοση κάθε αρχείου συστήματος που αντικαθιστά μια ενημέρωση. Ο καθαρισμός την επανέφερε στα 14,6 GB, και ένας νέος server από το ενημερωμένο image ξεκινά πλέον στα 14 GB. Κρατήστε ελεύθερα τουλάχιστον 10 GB για την επόμενη ενημέρωση. Ο οδηγός ενημερώσεων των Windows έχει τις εντολές καθαρισμού.
Τι να διαλέξετε
| Τι τρέχετε | Άνετος δίσκος | Πακέτο |
|---|---|---|
| Ένα bot, ένα VPN, ένα μικρό στατικό site | 15 GB | Nano, $3/μήνα |
| Ένα stack Docker με λίγα images | 25 GB | Micro, $5/μήνα |
| WordPress με βάση δεδομένων και ανεβασμένα αρχεία, πολλά stacks | 35 GB | Small, $8/μήνα |
| Μεγαλύτερες βάσεις, πολλά images, τοπικά αντίγραφα | 45 GB | Medium, $12/μήνα |
| Windows Server 2022 | 50–60 GB | Windows-Small, $11/μήνα |
Δύο κανόνες κάνουν οποιοδήποτε από αυτά να κρατήσει περισσότερο: βάλτε όριο στα logs των containers πριν το deploy, και αντιγράφετε τα αντίγραφα ασφαλείας έξω από τον server αντί να τα κρατάτε στον δίσκο του. Αν ένας server έχει ήδη γεμίσει, ο οδηγός μας για να ελευθερώσετε χώρο στον δίσκο σας καθοδηγεί βήμα βήμα. Για τη μνήμη στη διαστασιολόγηση, δείτε πόση RAM χρειάζεται ένα VPS. Όλα τα πακέτα βρίσκονται στη σελίδα VPS, με πληρωμή σε USDT, USDC ή ETH μέσω Base, Ethereum ή Polygon.
Σχόλια
Δεν υπάρχουν ακόμη σχόλια. Γίνετε ο πρώτος.