# Problemy z miejscem na dysku
– Wyświetlenie zajętości dysku
df -h
– Zwolnienie miejsca
Skasowaliśmy plik, ale nie zwolniło miejsca na dysku.
Oznacza to, że jakiś proces cały czas pisze do pliku.
Skasowaliśmy plik, ale jakiś program cały czas do niego pisze i dlatego nie zwolniło miejsca.
? Jak namierzyć taki plik?
lsof | grep deleted
Wyświetla pliki skasowane, ale nadal otwarte. Oprócz tego podaje informacje o procesie (nazwa, pid), który cały czas ma go otwartego i do niego pisze.
? Jak to rozwiązać?
Wejdźmy do /proc/pid. Wewnątrz tego procesu jest katalog fd (file descryptions). Znajdziemy tutaj deskryptor do pliku (w tym przypadku skasowanego).
Możemy przeładować usługę, uruchomić ponownie program itp. Zamknie on proces, który używa pliku i tym samym po zamknięciu deskryptora go skasuje – zwolni miejsce.
* Jeżeli skasowaliśmy przez przypadek plik, ale jakiś proces cały czas ma do niego deskryptor = jesteśmy uratowani 🙂
cat numer_deskryptora > /tmp/nasz_odzyskany_plik
# Brak wolnych inodów
inode – jednostka alokacji na dysku (domyślnie 4kb), gdzie zapisywane są dane (data utworzenia, rozmiar, atrybuty, itp); ograniczona ilość inodów na dysku
pusty pik/katalog = 1 inode = 4kb
Jeżeli będziemy mieli zbyt wiele pustych plików to też wywali błąd o braku miejsca na dysku. Spowodowane to będzie nie tym, że fizycznie skończyło się miejsce, ale że skończyły się właśnie inode.
rozmiar dysku w kb / 4kb = ilość inodów
– Jak sprawdzić ilość inodów?
df -i
# Obciążenie dysku (IO)
– Sprawdzenie obciążenia dysku (statystyki odświeżane co 1 sek.)
iostat -x 1
pidstat -dl 1 (statystyki dla pidów; co sekundę wyświetla który proces ile zużywa)
– Sprawdzenie jaki proces ile IO zużywa
iotop
Możemy sobie przestawić sortowanie write/read (przechodzenie strzałkami).
– Zmiana priorytetu dyskowego
Najpierw namierzamy PID procesu, który bardzo obciąża dysk, a następnie zmieniamy jego pid.
* Sprawdzenie priorytetu dla procesu
ionice -p numer_pid
* Zmiana priorytetu (im wyższy numer tym mniejszy priorytet, nic ważnego)
ionice -c 3 -p pid
0 – none
3 – idle; na końcu całej kolejki dopiero dostanie dostęp (jak się będzie nudził dysk)