Jak zoptymalizować przestrzeń dyskową w systemie Linux
15 min czytania - 22 maja 2026

Praktyczne techniki odzyskiwania i optymalizacji przestrzeni dyskowej na serwerach Linux, od czyszczenia pamięci podręcznej pakietów po dostrajanie systemu plików i zautomatyzowaną konserwację.
Jak zoptymalizować przestrzeń dyskową w systemie Linux
Przez lata domyślną odpowiedzią na zapełniony dysk było po prostu: dodaj więcej pamięci. Pamięć była tania. Teraz już tak nie jest. Ceny pamięci flash NAND gwałtownie wzrosły od końca 2025 r., napędzane popytem na infrastrukturę AI, który pochłania globalne moce produkcyjne. Ceny kontraktowe na dyski SSD dla przedsiębiorstw wzrosły o 85–90% tylko w pierwszym kwartale 2026 r., ceny detaliczne dysków NVMe dla konsumentów wzrosły mniej więcej dwukrotnie, a nowe moce produkcyjne pamięci NAND mają zostać uruchomione dopiero w 2027 r.
W rezultacie każdy gigabajt na serwerze kosztuje więcej niż rok temu, co sprawia, że optymalizacja tego, co już masz, jest znacznie lepszą inwestycją niż kupowanie nowych zasobów. W tym poście omówiono, jak znaleźć to, co zajmuje miejsce na dysku, jak to usunąć oraz jak skonfigurować system plików, aby efektywniej wykorzystywać pamięć masową.
Jak sprawdzić, co zajmuje miejsce na dysku
Zacznij od df -h , aby uzyskać podgląd każdego zamontowanego systemu plików, w tym całkowitego rozmiaru, wykorzystanej przestrzeni i procentowego wykorzystania. Każda partycja powyżej 90% wymaga uwagi. W razie potrzeby sprawdź poszczególne partycje indywidualnie:
df -h /
df -h /bootNie pomijaj i-węzłów. System plików może mieć wolne miejsce, ale brak dostępnych i-węzłów, co powoduje te same awarie. Sprawdź za pomocą df -i.
Jeśli df pokazuje 100% wykorzystania, ale liczby się nie zgadzają, prawdopodobnie masz pliki-duchy. Są to pliki, które zostały usunięte, ale nadal są otwarte przez uruchomiony proces. Miejsce nie zostanie odzyskane, dopóki proces nie zwolni uchwytu pliku. Znajdź je za pomocą:
sudo lsof / | grep deletedGdy już wiesz, które systemy plików są obciążone, przejdź do katalogów za pomocą du lub ncdu. Do szybkich sprawdzeń lub tworzenia skryptów du jest odpowiednim narzędziem:
du -h --max-depth=1 /varDodaj -x podczas skanowania od katalogu głównego, aby pozostać w jednym systemie plików i pominąć wirtualne montowania, takie jak /proc. Do interaktywnego przeglądania na serwerze zdalnym ncdu oferuje nawigowalny interfejs tekstowy, w którym można sortować pliki według rozmiaru i bezpośrednio je usuwać.
| Funkcja | du | ncdu |
|---|---|---|
| Interfejs | Statyczne dane wyjściowe wiersza poleceń | Interaktywny interfejs TUI z nawigacją za pomocą klawiszy strzałek |
| Najlepsze zastosowanie | Skrypty i szybkie kontrole | Ręczne przeglądanie serwerów zdalnych |
| Sortowanie | Wymaga przekierowania do sort | Wbudowane (według rozmiaru, nazwy itp.) |
| Usuwanie plików | Oddzielne rm polecenie | Wbudowane (naciśnij d) |
Czyszczenie pamięci podręcznej pakietów, logów i duplikatów
Trzy obszary konsekwentnie odpowiadają za największą ilość odzyskiwalnego miejsca: pamięć podręczna pakietów, pliki dziennika oraz duże lub zduplikowane pliki.
Pamięć podręczna pakietów i osierocone zależności
Każda instalacja lub aktualizacja pozostawia po sobie pliki pakietów w pamięci podręcznej. Z biegiem czasu gromadzą się one w tle. Wyczyść je zgodnie z instrukcjami dla swojej dystrybucji:
| Zadanie | Debian/Ubuntu (APT) | Fedora/RHEL (DNF) | Arch (Pacman) |
|---|---|---|---|
| Wyczyść pamięć podręczną | sudo apt clean | sudo dnf clean all | sudo paccache -r |
| Usuń osierocone pliki | sudo apt autoremove | sudo dnf autoremove | pacman -Rs $(pacman -Qdtq) |
| Usuń pozostałe pliki konfiguracyjne | sudo apt autoremove --purge | Obsługiwane przez autoremove | N/A |
Najpierw wyświetl podgląd zmian za pomocą sudo apt autoremove --dry-run. Stare jądra mogą zajmować 1,5 GB lub więcej w systemach Ubuntu. Zawsze zachowaj aktualnie działające jądro i jedną kopię zapasową przed usunięciem starszych wersji.
Jeśli korzystasz z Snap lub Flatpak, one również gromadzą wersje i pliki uruchomieniowe:
sudo snap set system refresh.retain=2
flatpak uninstall --unusedPliki dziennika w /var/log
Logi to najczęstszy, cichy pożeracz miejsca na dysku. Najpierw znajdź zbyt duże logi:
du -xhd1 /var/log | sort -h
find /var/log -type f -size +100MW przypadku dzienników systemd użyj wbudowanego narzędzia vacuum zamiast ręcznego usuwania plików:
sudo journalctl --vacuum-size=500MAby ustawić stały limit, edytuj /etc/systemd/journald.conf:
SystemMaxUse=500M
MaxRetentionSec=14dayW przypadku aktywnych plików dziennika, które są nadal otwarte przez usługę, nie używaj rm. Miejsce nie zostanie zwolnione, dopóki proces utrzymuje deskryptor pliku. Zamiast tego użyj polecenia truncate:
sudo truncate -s 0 /var/log/syslogDuże i zduplikowane pliki
Znajdź pliki większe niż 500 MB w całym systemie:
sudo find / -type f -size +500M -exec ls -lh {} +W przypadku duplikatów rmlint wykorzystuje porównania oparte na skrótach do wykrywania zduplikowanych plików, pustych katalogów i uszkodzonych dowiązań symbolicznych. Przed usunięciem czegokolwiek należy dokładnie przejrzeć wynik, szczególnie na serwerach, gdzie identyczne pliki mogą pełnić różne funkcje.
Optymalizacja na poziomie systemu plików
Po wyczyszczeniu plików można uzyskać więcej przestrzeni użytkowej na tym samym sprzęcie, dostosowując system plików.
Zmniejszenie przestrzeni zarezerwowanej w systemie plików ext4
Domyślnie system plików ext4 rezerwuje 5% przestrzeni dla katalogu głównego. Na partycji danych o pojemności 2 TB oznacza to 100 GB niewykorzystanej przestrzeni. Na serwerze dedykowanym, gdzie partycja danych nie jest systemem plików root, można bezpiecznie zmniejszyć tę wartość:
sudo tune2fs -m 1 /dev/sdXnUstawia to rezerwę na 1%, co jest wystarczające w większości przypadków. Zweryfikuj zmianę za pomocą tune2fs -l /dev/sdXn.
Przezroczystą kompresją Btrfs
Btrfs obsługuje przezroczystą kompresję plików, której nie oferują systemy ext4 i XFS. Zamontuj z opcją compress=zstd , aby automatycznie kompresować dane podczas zapisu. ZSTD zapewnia dobrą równowagę między szybkością a współczynnikiem kompresji. W przypadku obciążeń mieszanych compress-force=zstd można uzyskać dodatkowe 10–20% oszczędności poprzez kompresję plików, które heurystyka normalnie pominęłaby.
Aby skompresować istniejące dane na woluminie Btrfs:
btrfs filesystem defragment -czstd /path/to/dirNależy zachować ostrożność w przypadku woluminów zawierających migawki lub reflinki. Defragmentacja narusza relacje typu „Copy-on-Write”, co w rzeczywistości może zwiększyć zużycie miejsca na dysku.
Reflinki dla kopii natychmiastowych
Zarówno XFS, jak i Btrfs obsługują reflinki, które tworzą kopie plików współdzielące bloki fizyczne, dopóki jedna z kopii nie zostanie zmodyfikowana. Jest to przydatne do klonowania obrazów dysków maszyn wirtualnych lub warstw kontenerów bez podwajania zużycia pamięci masowej:
cp --reflink=always source.img clone.imgCienkie przydzielanie przestrzeni dyskowej LVM
Cienkie przydzielanie LVM pozwala przydzielić więcej przestrzeni logicznej niż fizycznie dostępnej, zużywając rzeczywisty dysk tylko w miarę zapisywania danych. Jest to przydatne podczas uruchamiania wielu maszyn wirtualnych lub kontenerów, z których każdy potrzebuje własnego woluminu logicznego, ale nie wszystkie zapełnią go jednocześnie.
Aby zapobiec wyczerpaniu się puli typu thin, włącz automatyczne rozszerzanie w /etc/lvm/lvm.conf , ustawiając thin_pool_autoextend_threshold i thin_pool_autoextend_percent.
Automatyzacja konserwacji pamięci masowej
Ręczne czyszczenie działa tylko raz. Automatyczne czyszczenie utrzymuje dyski w dobrym stanie od teraz do następnego logowania. Użyj systemd timerów cron tam, gdzie to możliwe. Automatycznie rejestrują one dane wyjściowe journalctl automatycznie, a Persistent=true nadrabia opuszczone uruchomienia po ponownym uruchomieniu komputera.
| Narzędzie | Narzędzie | Częstotliwość |
|---|---|---|
| Rotacja logów | logrotate | Codziennie lub co tydzień |
| Odkurzanie dziennika | journalctl --vacuum-time | Co tydzień |
| Czyszczenie pamięci podręcznej pakietów | apt clean / dnf clean all | Co miesiąc |
| Czyszczenie plików tymczasowych | systemd-tmpfiles | Codziennie |
| Czyszczenie Docker | docker system prune | Co tydzień |
| Monitorowanie wykorzystania dysku | Skrypt niestandardowy + timer systemd | Co 15–30 min |
Docker zasługuje na szczególną uwagę. Logi kontenerów mogą się powiększać bez żadnego widocznego ostrzeżenia. Ogranicz rozmiar logów globalnie, edytując /etc/docker/daemon.json. Ustaw max-size i max-file w sekcji log-opts , aby zapobiec zapełnianiu dysku przez poszczególne kontenery.
W celu proaktywnego monitorowania skonfiguruj dwupoziomowy system alertów: ostrzeżenie przy 80% wykorzystania dysku i alert krytyczny przy 90%. Rejestruj wykorzystanie dysku co godzinę, abyś mógł śledzić trendy wzrostu i przewidzieć, kiedy partycja osiągnie pojemność:
0 * * * * df --output=source,size,used,pcent >> /var/log/disk_usage.csvJeszcze jedno zabezpieczenie: zamontuj /var, /tmpi /home na oddzielnych partycjach. Zapobiega to sytuacji, w której niekontrolowane logi lub dane użytkowników zajmą główny system plików i spowodują awarię całego systemu.
Wykorzystaj każdy gigabajt
W obliczu rosnących cen pamięci masowej i braku perspektyw na poprawę sytuacji do momentu uruchomienia nowej produkcji pamięci NAND w 2027 r. optymalizacja posiadanych zasobów to nie tylko dobra praktyka. To realne oszczędności. Podejście jest proste:
- Sprawdź wykorzystanie dysku za pomocą
df,duincduprzed wprowadzeniem jakichkolwiek zmian. - Wyczyść pamięć podręczną pakietów, rotuj logi i usuń duplikaty, aby natychmiast odzyskać miejsce.
- Zoptymalizuj system plików. Zmniejsz liczbę bloków zarezerwowanych w ext4, włącz kompresję Btrfs lub użyj alokacji dynamicznej LVM, aby uzyskać więcej z tego samego sprzętu.
- Zautomatyzuj konserwację za pomocą timerów systemd, aby dyski pozostawały czyste między audytami.
- Monitoruj trendy użytkowania i ustaw alerty na 80% i 90%, aby wcześnie wykrywać problemy.
Jeśli potrzebujesz dedykowanej infrastruktury serwerowej z wysokowydajną pamięcią masową NVMe, serwery dedykowane FDC są stworzone właśnie do tego.
Dlaczego ważne jest posiadanie wydajnego i niezmierzonego serwera VPS?
Potrzebujesz niezawodnej wydajności i nieograniczonego ruchu? Potężny, nielimitowany serwer VPS oferuje szybkość, skalowalność i przepustowość, których potrzebujesz, bez martwienia się o limity użytkowania.
3 min czytania - 9 maja 2025
Jak zoptymalizować przestrzeń dyskową w systemie Linux
15 min czytania - 22 maja 2026

Masz pytania lub potrzebujesz niestandardowego rozwiązania?
Elastyczne opcje
Globalny zasięg
Natychmiastowe wdrożenie
Elastyczne opcje
Globalny zasięg
Natychmiastowe wdrożenie