Kontrola miejsca na hostingu to jeden z tych obszarów administracji serwerem, który szybko ujawnia problemy z wydajnością, kopią zapasową i bezpieczeństwem. Przepełniony dysk potrafi zatrzymać pocztę, uniemożliwić aktualizacje aplikacji, rozbić procesy tworzenia backupów, a w skrajnych przypadkach doprowadzić do uszkodzeń danych. Z drugiej strony, dobrze prowadzona analiza użycia przestrzeni pozwala wcześnie wykryć anomalie, zoptymalizować koszty planu hostingowego oraz uporządkować cykl życia plików i baz danych. Poniżej znajdziesz praktyczne podejście do analizy wykorzystania dysku na hostingu współdzielonym, VPS i serwerach dedykowanych.
Co składa się na zajętość dysku na hostingu i dlaczego to ma znaczenie
„Zużycie dysku” na hostingu rzadko ogranicza się wyłącznie do katalogu z plikami strony. W praktyce przestrzeń zajmują równolegle różne komponenty: pliki aplikacji, multimedia, logi, poczta, cache, backupy, bazy danych, a czasem także pliki tymczasowe generowane przez system lub panel. Kluczowe jest zrozumienie, co rośnie i dlaczego – tylko wtedy da się dobrać właściwe działania.
Najczęstsze źródła „znikającego” miejsca
- Pliki multimedialne – zdjęcia i wideo są najczęstszym „pożeraczem” przestrzeni w CMS-ach (WordPress, Drupal, PrestaShop). Duplikaty, wersje miniatur i nieużywane media potrafią zająć więcej niż sam kod strony.
- Kopie zapasowe – backupy lokalne (np. archiwa .zip/.tar.gz) tworzone przez wtyczki, panel hostingowy lub skrypty cron. Często trzymane są w katalogu strony, co jest ryzykowne i kosztowne przestrzennie.
- Logi – access logi i error logi (serwer WWW), logi aplikacyjne, logi zadań cron. Brak rotacji logów powoduje stały wzrost plików.
- Poczta – skrzynki IMAP trzymają wszystko na serwerze; załączniki potrafią szybciej zapełnić konto niż pliki WWW. Do tego dochodzi kosz spam i foldery typu „Trash”.
- Cache – cache aplikacji, cache reverse proxy, miniatury obrazów, pliki sesji. Przy błędnej konfiguracji cache może rosnąć bez limitu.
- Bazy danych – rozrost tabel przez logi, sesje, statystyki, koszyki, transakcje; w WordPressie często rosną tabele opcji i postmeta.
- Pliki tymczasowe – katalogi /tmp, pliki uploadów niedokończonych, pozostałości po aktualizacjach.
Różnice między hostingu współdzielonym, VPS i serwerem dedykowanym
Na hostingu współdzielonym zwykle otrzymujesz widok „w ramach konta” i limit narzucony przez usługodawcę. Panel (np. cPanel, DirectAdmin) pokazuje zajętość katalogów i skrzynek, ale nie zawsze widać warstwę systemową czy mechanizmy snapshotów. Na VPS i serwerze dedykowanym masz pełną kontrolę: możesz sprawdzić wykorzystanie systemu plików, inody, wolumeny, a także wdrożyć monitoring. Tu też częściej pojawia się temat osobnych partycji (np. /var, /home, /var/lib/mysql) i rezerw przestrzeni dla roota.
Nie tylko gigabajty: limity inode i „ukryte” problemy
Wielu dostawców limituje nie tylko pojemność w GB, ale też liczbę plików (tzw. inode). Możesz mieć wolne gigabajty, a mimo to nie da się utworzyć nowego pliku, bo wyczerpałeś limit inode. Typowym powodem są miliony małych plików: cache, miniatury, pliki sesji, kopie wersji, logi aplikacji w formie dzienników dziennych. Analiza powinna więc obejmować zarówno rozmiar, jak i strukturę danych.
Metody analizy wykorzystania dysku: od panelu hostingu po SSH
Analizę warto prowadzić warstwowo: najpierw szybki przegląd w panelu, potem dokładne pomiary (najlepiej przez SSH), a na końcu korelacja z zachowaniem aplikacji. Dzięki temu nie tylko wiesz „ile” zajmuje, ale rozumiesz „co” i „czemu” rośnie.
Panel hostingowy: szybki przegląd i pierwsza diagnoza
W panelach hostingowych często znajdziesz moduły typu „Disk Usage”, „File Usage”, „Email Accounts” czy „MySQL Databases”. Ich zaletą jest prostota: widać, które katalogi są największe i które skrzynki pocztowe zajmują najwięcej. Wadą bywa opóźnienie danych (cache raportu) oraz brak detali typu największe pliki w danym drzewie. Warto traktować to jako punkt startowy.
- Sprawdź, czy panel rozbija zużycie na WWW, pocztę i bazy danych.
- Ustal, czy raport pokazuje rozmiar katalogów w czasie rzeczywistym, czy z opóźnieniem.
- Zweryfikuj, czy masz limit inode i gdzie go podejrzanie szybko zużywasz.
SSH i podstawowe komendy: df, du, sort
Jeśli masz SSH, wchodzisz poziom wyżej: mierzysz realne zajętości systemu plików i katalogów. Najbardziej przydatne są trzy narzędzia: df (ile wolnego na partycjach), du (ile zajmuje katalog), oraz sortowanie wyników, żeby od razu zobaczyć największych winowajców.
Przykładowe podejście:
- Najpierw sprawdź wykorzystanie systemu plików: df -h (gdzie brakuje miejsca).
- Potem wejdź do katalogu użytkownika i zidentyfikuj największe katalogi: du -h –max-depth=1 | sort -h.
- Na końcu zejście głębiej do największych gałęzi drzewa.
Wyszukiwanie największych plików i katalogów
Kiedy główny katalog „puchnie”, zwykle odpowiada za to niewielka liczba plików, które urosły nienaturalnie: log, archiwum backupu, eksport bazy, katalog cache. Podejście praktyczne to znalezienie największych plików i sprawdzenie ich pochodzenia.
- Największe pliki w drzewie (np. top 20) pozwalają szybko namierzyć backupy i logi.
- Warto porównać daty modyfikacji: czy plik rośnie codziennie, czy to jednorazowy „zrzut”.
- Przy plikach log sprawdź, czy jest rotacja, a przy backupach – czy nie trzymasz wielu kopii lokalnie.
Analiza inode: gdy „miejsce jest”, a plików nie da się tworzyć
Jeśli hosting zgłasza błąd zapisu, mimo że dysk nie jest pełny, problemem bywa limit inode. Na VPS/dedykach możesz sprawdzić go wprost (np. df -i). Na hostingu współdzielonym panel bywa jedynym źródłem. Najczęściej pomagają:
- Opróżnienie/przycięcie katalogów cache i sesji.
- Usunięcie starych miniatur i nieużywanych wersji plików.
- Ograniczenie generowania wielu wariantów obrazów.
- Rotacja logów i ograniczenie liczby plików log na dzień.
„Dysk zajęty, ale nie widzę plików” – typowe pułapki
Na serwerach z SSH bywa sytuacja, że du „nie widzi” zajętości, a df pokazuje pełny dysk. Najczęstszy powód to skasowane pliki, które nadal są otwarte przez proces (np. serwer WWW, PHP-FPM, baza). System trzyma wtedy miejsce do czasu zamknięcia uchwytu pliku. W praktyce pomaga restart usługi lub zidentyfikowanie procesu trzymającego usunięty plik. Na hostingu współdzielonym zwykle robi to administrator hostingu, ale warto rozumieć mechanizm, bo tłumaczy „magiczne” różnice w pomiarach.
Najbardziej „ciężkie” obszary hostingu: WWW, bazy danych, poczta i logi
Skuteczna analiza to nie tylko znalezienie katalogu o dużym rozmiarze, ale też ocena, czy dane są potrzebne oraz czy ich przechowywanie jest zaprojektowane poprawnie. Poniżej cztery obszary, w których najczęściej da się odzyskać przestrzeń bez ryzyka.
Pliki strony i katalog uploadów: porządkowanie bez psucia serwisu
W katalogach WWW warto odróżnić kod aplikacji od treści użytkowników. Kod zwykle ma stabilny rozmiar. Treści (upload) rosną stale. Najczęstsze przyczyny nadmiernego wzrostu:
- Wielokrotne wgrywanie tych samych plików pod innymi nazwami.
- Automatyczne generowanie wielu miniatur, których nikt nie używa.
- Zapomniane archiwa po migracjach (zipy, stare katalogi „old”, „backup”).
- Zbędne paczki instalacyjne, eksporty i pliki testowe.
Bezpieczna praktyka to weryfikacja, czy duże pliki są referencjonowane przez aplikację (w CMS: biblioteka mediów, baza danych), zanim zostaną usunięte. Jeśli nie masz pewności, przenieś je tymczasowo do katalogu poza rootem WWW i obserwuj, czy coś przestało działać.
Bazy danych: rozrost tabel, optymalizacja i retencja
Rozmiar bazy danych jest często niedoszacowany, bo „przecież to tylko tekst”. Tymczasem sklepy i serwisy treści generują ogrom metadanych, logów i rekordów tymczasowych. W analizie warto:
- Sprawdzić, które tabele są największe i czy mają sens (np. logi zdarzeń, statystyki, koszyki).
- Wdrożyć retencję danych: kasowanie starych logów, wygaszanie sesji, czyszczenie koszyków.
- Rozważyć archiwizację: stare zamówienia lub logi do osobnej bazy, pliku lub systemu analitycznego.
W silnikach takich jak MySQL/MariaDB sama „optymalizacja” tabel nie zawsze daje spektakularny efekt, ale porządki w danych (usuwanie zbędnych rekordów) potrafią zmniejszyć bazę zauważalnie. Uwaga: każdą operację masową na bazie wykonuj po aktualnym backupie.
Poczta na hostingu: skrzynki, załączniki i spam
Poczta to częsty powód nagłego zapełnienia konta. Kilka dużych załączników, masowa korespondencja lub zalew spamu w folderze „Junk” i limit znika. Warto analizować:
- Największe skrzynki i foldery IMAP (Inbox/Sent/Trash/Junk).
- Wiadomości z dużymi załącznikami – czy nie lepiej przenieść pliki do chmury i wysyłać linki.
- Politykę retencji: automatyczne czyszczenie Trash/Junk po X dniach.
Jeśli hosting obsługuje pocztę w jednej przestrzeni z WWW, problemy z pocztą potrafią wywrócić działanie strony (brak miejsca na sesje, cache, upload). Dlatego monitorowanie poczty powinno być częścią standardowej kontroli dysku.
Logi i diagnostyka: kiedy logowanie zaczyna szkodzić
Logi są niezbędne do rozwiązywania problemów, ale niekontrolowane potrafią zapełnić dysk. Dobre praktyki to:
- Rotacja logów (np. dziennie/tygodniowo) oraz limit rozmiaru pliku.
- Kompresja starych logów i automatyczne usuwanie po określonym czasie.
- Ostrożność z trybem debug w aplikacji produkcyjnej – potrafi generować ogrom danych.
W analizie przydatne jest sprawdzenie, czy logi są proporcjonalne do ruchu. Jeśli logi rosną nienaturalnie szybko, często wskazuje to na pętlę błędów (np. 404 generowane przez boty, błędy aplikacji, źle skonfigurowany cron).
Proces i narzędzia: jak zrobić z analizy dysku stały element utrzymania hostingu
Jednorazowe posprzątanie rzadko rozwiązuje problem na stałe. Najlepsze efekty daje proces: pomiar, alarmy, retencja, automatyzacja oraz okresowe przeglądy. Dzięki temu przestrzeń nie „znika” po cichu, a Ty reagujesz zanim serwis zacznie odmawiać posłuszeństwa.
Ustal progi i alerty: reaguj zanim będzie krytycznie
Na VPS/dedykach warto wdrożyć monitoring, który mierzy wykorzystanie partycji, inode oraz tempo przyrostu. Sensowne progi alarmowe to np. 70% (ostrzeżenie), 85% (pilne), 95% (krytyczne), ale równie ważna jest dynamika: jeśli przyrost jest szybki, problem może być awarią logowania lub pętlą backupów.
Retencja danych i polityka przechowywania
Najczęściej „wieczne” przechowywanie wszystkiego jest niepotrzebne i drogie. Polityka retencji powinna dotyczyć:
- Backupów: ile kopii trzymasz lokalnie, a ile poza serwerem.
- Logów: jak długo są potrzebne do diagnostyki i zgodności.
- Cache: kiedy go czyścisz i czy ma limity rozmiaru.
- Poczty: automatyczne czyszczenie folderów śmieci.
Backup a wolne miejsce: najczęstszy błąd operacyjny
Paradoksalnie to backup często doprowadza do braku miejsca. Dzieje się tak, gdy kopia jest tworzona jako pełne archiwum na tym samym dysku, na którym leżą dane źródłowe. Lepsze podejście:
- Zamiast wielu pełnych archiwów lokalnie – przechowywanie kopii w zewnętrznym storage (S3/kompatybilne, FTP backup, inny serwer).
- Stosowanie przyrostowych kopii zapasowych, jeśli narzędzie to umożliwia.
- Weryfikacja, czy kopie nie zawierają cache i katalogów tymczasowych, które nie są potrzebne.
Porządek w katalogach i nazywaniu: małe zmiany, duży efekt
W utrzymaniu hostingu świetnie działa konsekwencja: osobne katalogi na eksporty, osobne na lokalne paczki, jasne nazewnictwo, a przede wszystkim zakaz tworzenia „backup.zip” bez daty, którego nikt potem nie usuwa. Ułatwia to przegląd i automatyczne czyszczenie.
Checklist do cyklicznego przeglądu wykorzystania dysku
- Sprawdź wykorzystanie przestrzeni i inody (jeśli dostępne).
- Wypisz 5 największych katalogów oraz 20 największych plików.
- Zweryfikuj rozmiar katalogu uploadów oraz katalogów cache.
- Sprawdź, czy lokalne kopie zapasowe nie mnożą się bez ograniczeń.
- Oceń wzrost bazy danych: czy jakieś tabele rosną nienaturalnie.
- Sprawdź skrzynki pocztowe: największe foldery, szczególnie Sent/Trash/Junk.
- Zweryfikuj logi: czy działa rotacja i czy nie ma plików o rozmiarach „nietypowych”.
- Przejrzyj katalogi tymczasowe i pozostałości po aktualizacjach/migracjach.
Typowe scenariusze i szybkie diagnozy: co robić, gdy dysk rośnie
W praktyce problem zwykle pasuje do jednego z kilku schematów. Umiejętność rozpoznania scenariusza skraca czas diagnozy i zmniejsza ryzyko uszkodzenia serwisu przez pochopne kasowanie.
Skok zajętości po aktualizacji lub migracji
- Sprawdź, czy nie zostały stare katalogi aplikacji (np. „site_old”, „public_html_backup”).
- Poszukaj archiwów .zip/.tar.gz oraz dumpów baz danych .sql.
- Zweryfikuj, czy nowa wersja nie generuje większej liczby miniatur lub cache.
Stały przyrost kilka procent dziennie
- Typowo: logi bez rotacji, rosnąca baza (tabela logów/zdarzeń), poczta lub backupy cron.
- Porównaj rozmiary katalogów w odstępie 24 godzin i zanotuj, która gałąź przyrasta najszybciej.
- Jeśli rosną logi błędów, sprawdź źródło błędów zamiast tylko kasować log.
Nagle 100% i awarie zapisu
- Najpierw uwolnij minimalną przestrzeń na działanie systemu (np. usuń/przenieś największe archiwum, oczyść kosz mailowy, usuń stare backupy lokalne).
- Ustal przyczynę: pojedynczy ogromny plik, pętla generowania logów, zalew poczty, błąd w cache.
- Wprowadź ograniczenia: rotacja logów, limity cache, retencja kopii.
Wolne miejsce jest, ale aplikacja nie zapisuje
- Podejrzenie limitu inode (zbyt dużo małych plików).
- Problemy z uprawnieniami po migracji lub zmianie właściciela plików.
- Na serwerach z konteneryzacją: limit przestrzeni w wolumenie, mimo wolnego miejsca na hoście.
Optymalizacja bez ryzyka: co usuwać, co archiwizować, czego nie dotykać
Najbezpieczniej odzyskuje się miejsce, usuwając dane odtworzone lub zbędne: cache, stare logi, przeterminowane backupy lokalne. Większej ostrożności wymagają uploady i dane w bazie. Wysoka jakość utrzymania polega na tym, by porządkować bez „gaszenia pożaru” i bez wywoływania nowych awarii.
Najczęściej bezpieczne do czyszczenia
- Katalogi cache aplikacji (po upewnieniu się, że zostaną poprawnie odbudowane).
- Stare logi po rotacji i kompresji.
- Lokalne backupy starsze niż przyjęta polityka retencji.
- Tymczasowe eksporty .sql, archiwa migracyjne, paczki instalacyjne.
Obszary wymagające weryfikacji przed usunięciem
- Katalog uploadów (media) – upewnij się, że plik nie jest używany przez stronę.
- Pliki poczty – skasowanie może być nieodwracalne dla użytkownika.
- Tabele w bazie danych – usuwanie danych bez planu i backupu to proszenie się o problem.
Elementy, których zwykle nie rusza się „na ślepo”
- Katalogi systemowe na VPS/dedykach (np. /var/lib, /etc) bez zrozumienia konsekwencji.
- Pliki konfiguracyjne, certyfikaty, klucze, pliki aplikacji bez kontroli wersji.
- Pliki związane z działaniem usług (np. spool, kolejki) bez sprawdzenia, dlaczego rosną.
Dobrze prowadzona analiza wykorzystania dysku jest połączeniem pomiarów, wiedzy o tym, jak działa hosting i aplikacja, oraz wdrożenia stałych zasad: monitoringu, retencji i automatyzacji porządków. Dzięki temu dysk przestaje być źródłem niespodzianek, a staje się przewidywalnym zasobem, który planujesz i skalujesz wraz z rozwojem serwisu.
