Debugowanie problemów z dyskami

# 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)

W celu świadczenia usług na najwyższym poziomie stosujemy pliki cookies, które będą zamieszczane w Państwa urządzeniu (komputerze, laptopie, smartfonie). W każdym momencie mogą Państwo dokonać zmiany ustawień Państwa przeglądarki internetowej i wyłączyć opcję zapisu plików cookies. View more
Zaakceptuj