Strony planów eksponują RAM, ale pełny dysk kładzie serwer równie skutecznie. Przy "No space left on device" bazy danych przestają zapisywać, a strony odpowiadać, niezależnie od tego, ile pamięci jest wolne. Zużycie dysku łatwo przewidzieć, jeśli wiesz, co rośnie. Uruchomiliśmy świeże serwery z własnych obrazów i zmierzyliśmy każdego z typowych podejrzanych.
Ile zajmuje świeży serwer
Pomiar tuż po pierwszym uruchomieniu:
| System | Zajęte miejsce |
|---|---|
| Alpine Linux 3.21 | 153 MB |
| Debian 12 | 1,2 GB |
| Ubuntu 24.04 | 2,7 GB |
| Windows Server 2022 | 14,0 GB |
Na Linuksie prawie cały Nano z 15 GB jest Twój od pierwszego dnia. Windows zajmuje ponad jedną czwartą swoich 50 GB, zanim cokolwiek zainstalujesz, a jak zobaczysz niżej, aktualizacje biorą więcej.
Część z 2,7 GB Ubuntu dało się łatwo odzyskać. 440 MB to była pamięć podręczna pakietów z aktualizacji przy pierwszym uruchomieniu, a zainstalowane były trzy jądra, choć używane jest jedno. Dwa polecenia sprowadziły zajęte miejsce do 2,16 GB:
sudo apt clean
sudo apt autoremove --purge
Docker: obrazy szybko się sumują
Sama instalacja Dockera dodała około 300 MB. Liczą się obrazy. Pobraliśmy osiem popularnych, jeden po drugim, za każdym razem mierząc, o ile urósł dysk:
| Obraz | Dodane miejsce |
|---|---|
nginx:alpine | 91 MB |
nginx:latest | 232 MB |
postgres:16 | 501 MB |
python:3.12-slim | 59 MB |
node:22 | 1564 MB |
mariadb:11 | 437 MB |
wordpress:latest | 960 MB |
redis:7-alpine | 55 MB |
| Razem | 3,9 GB |
Obrazy o wspólnej bazie współdzielą jej warstwy, dlatego python:3.12-slim dodał tylko 59 MB: tę samą bazę Debiana przyniosły już nginx:latest i postgres:16. Obrazy oparte na Alpine są kilkakrotnie mniejsze od pełnych. Sam node:22 waży 1,5 GB, więc gdy możesz, buduj na node:22-slim lub node:22-alpine.
Obrazy piętrzą się przy aktualizacjach: każde docker compose pull zostawia starą wersję. Na naszym serwerze testowym jedno polecenie usunęło je wszystkie:
docker system df
docker system prune -a
Zgłosiło 4,1 GB odzyskanego miejsca. prune -a usuwa każdy obraz, którego nie używa żaden kontener, więc uruchamiaj je, gdy Twój stos działa. Wolumenów nie rusza, chyba że dodasz --volumes.
Logi: to, co zapełnia dysk w jedną noc
Docker zachowuje wszystko, co kontener wypisze, i domyślnie bez limitu rozmiaru. Uruchomiliśmy kontener, który w pętli wypisywał jedną krótką linię, taki wynik daje kontrola stanu albo tryb debugowania. Po 30 sekundach jego plik logu miał 6 MB. W tym tempie zapisywałby około 17 GB na dobę, więcej niż cały dysk planu Micro.
Ustaw limit dla wszystkich nowych kontenerów w /etc/docker/daemon.json:
{
"log-driver": "local",
"log-opts": { "max-size": "10m", "max-file": "3" }
}
Następnie uruchom sudo systemctl restart docker i utwórz kontenery na nowo (docker compose up -d --force-recreate). Istniejące kontenery zachowują ustawienia, z którymi je utworzono. Z limitem log tego samego kontenera testowego miał po 30 sekundach 4 MB i nigdy nie przekroczy 30 MB.
Dziennik systemowy ma już limit: na naszym serwerze z Ubuntu i dyskiem 25 GB journald ogranicza się do 2,3 GB, jednej dziesiątej systemu plików. Zajmował 15 MB.
Windows: aktualizacje potrzebują miejsca
Nasz obraz Windows Server 2022 pochodził z 2022 roku, więc go zaktualizowaliśmy. Podczas instalacji pierwszej aktualizacji zbiorczej zajęte miejsce wzrosło z 12,6 do 20,8 GB, a po drugiej doszło do 24,5 GB. Windows zachowuje starą wersję każdego pliku systemowego, który zastępuje aktualizacja. Czyszczenie sprowadziło je z powrotem do 14,6 GB, a nowy serwer z zaktualizowanego obrazu startuje teraz od 14 GB. Trzymaj co najmniej 10 GB wolne na następną aktualizację. Polecenia czyszczące są w poradniku aktualizacji Windows.
Co wybrać
| Co uruchamiasz | Wygodny rozmiar dysku | Plan |
|---|---|---|
| Bot, VPN, mała statyczna strona | 15 GB | Nano, $3/mies. |
| Stos Dockera z kilkoma obrazami | 25 GB | Micro, $5/mies. |
| WordPress z bazą danych i przesłanymi plikami, kilka stosów | 35 GB | Small, $8/mies. |
| Większe bazy, wiele obrazów, lokalne kopie | 45 GB | Medium, $12/mies. |
| Windows Server 2022 | 50–60 GB | Windows-Small, $11/mies. |
Dwie zasady przedłużają życie każdego z nich: ogranicz logi kontenerów przed wdrożeniem i kopiuj kopie zapasowe poza serwer, zamiast trzymać je na jego dysku. Jeśli serwer jest już pełny, nasz poradnik, jak zwolnić miejsce na dysku, przeprowadzi Cię krok po kroku. O pamięci przy doborze rozmiaru przeczytasz w artykule ile RAM potrzebuje VPS. Wszystkie plany są na stronie VPS, a płatność odbywa się w USDT, USDC lub ETH w sieciach Base, Ethereum lub Polygon.
Komentarze
Brak komentarzy. Bądź pierwszy.