Страницы

Поиск по вопросам

вторник, 27 ноября 2018 г.

du и df показывают существенно отличающиеся числа

На сервере закончилось место, логи уже удалять бесполезно...
Работаю под root'ом.
Вылоплинл df -h
Filesystem Size Used Avail Use% Mounted on rootfs 188G 177G 1.8G 99% / udev 10M 0 10M 0% /dev tmpfs 6.4G 292K 6.4G 1% /run /dev/disk/by-uuid/47783a3f-1df3-4061-a4b9-42c53642ca6c 188G 177G 1.8G 99% / tmpfs 5.0M 0 5.0M 0% /run/lock tmpfs 20G 8.0K 20G 1% /run/shm /dev/md1 496M 33M 438M 7% /boot
Затем сделал du -hd1a /, получилось:
125M /lib 52K /tmp 4.0K /home 23M /boot 584M /opt 6.8M /bin 8.3G /var 4.0K /mnt 2.4G /usr 8.7M /sbin 170M /root 16K /lost+found 216K /log2ban 8.0K /media 12K /srv 0 /dev 4.0K /lib64 300K /run 0 /sys du: cannot access /proc/14876/task/14876/ns/net': No such file or directory * остальные du: cannot access удалены 0 /proc 4.0K /selinux 5.8G /etc 18G /
Как видите, файлами занято 18 гигов, а блоками 177.
Помогите понять, чем занято место, и решить проблему.


Ответ

мой вольный перевод ответа: Why do “df” and “du” commands show different disk usage?

вероятно, вы знаете, что можно удалить файл, который всё ещё используется каким-нибудь процессом, и он останется доступным для данного процесса.
потому что остаётся открытым файловый дескриптор в псевдо-файловой системе proc (в /proc/номер-процесса/fd/), и пространство, занимаемое таким файлом, программа df считает используемым (и она права).
а вот программа du не просуммирует это пространство, так как уже нет файлов, с ним ассоциированных.
вы можете просмотреть информацию о таких удалённых, но всё ещё открытых файлах, например, так:
$ sudo lsof | grep '(deleted)'
и перезапустить те процессы, которые всё ещё используют удалённые файлы.

Комментариев нет:

Отправить комментарий