после того, как какой-то неправильный код php был исключен на одном из наших серверов, который пытался открыть файл, который не существует, мы получили огромные файлы журнала apache, которые еще не были настроены для ротации. Мы только что удалили эти файлы журналов. После чего мы увидели, что наш диск действительно не очищается. Выход df -h показывает следующее
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 18G 16G 1.1G 94% /
udev 999M 12K 999M 1% /dev
tmpfs 403M 848K 402M 1% /run
none 5.0M 0 5.0M 0% /run/lock
none 1007M 72K 1007M 1% /run/shm
/dev/mapper/vg_ftp-ftp 9.9G 5.3G 4.2G 56% /mnt/local/ftp
Inodes тоже в порядке
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/sda1 1168128 227009 941119 20% /
udev 215094 442 214652 1% /dev
tmpfs 219463 384 219079 1% /run
none 219463 6 219457 1% /run/lock
none 219463 3 219460 1% /run/shm
/dev/mapper/vg_ftp-ftp 655360 1553 653807 1% /mnt/local/ftp
После расследования с ду и ncdu мы все еще не могли найти, куда исчезло пространство. Позже мы подумали, что это открытые обработчики файлов, которые все еще существуют, поэтому мы lsof | grep удален который дал нам несколько файлов, включая / sbin / mountall что немного пугает.
mountall 287 root txt REG 8,1 120404 9334 /sbin/mountall (deleted)
mysqld 615 mysql 4u REG 8,1 0 416 /tmp/iba1fEnV (deleted)
mysqld 615 mysql 5u REG 8,1 0 899 /tmp/ibcxXlJG (deleted)
mysqld 615 mysql 6u REG 8,1 0 900 /tmp/ibdby44r (deleted)
mysqld 615 mysql 7u REG 8,1 0 901 /tmp/ibYaPXvd (deleted)
mysqld 615 mysql 11u REG 8,1 0 986 /tmp/ibS9XlvZ (deleted)
ntpd 1231 ntp 3r REG 8,1 481 1427 /etc/network/interfaces~ (deleted)
Мы пытаемся избежать перезагрузки. Есть ли у кого-нибудь идеи, откуда это могло взяться или что еще мы могли бы проверить, чтобы найти недостающее место?
Удаленный вами файл по-прежнему будет открыт, и Apache будет писать в него. Вам нужно будет перезапустить Apache, чтобы он смог создать новый файл. Изящный перезапуск должен помочь
apachctl -k graceful
или
apache2ctl -k graceful
или то, что использует ваш дистрибутив.
Вы пробовали бегать sync
, слишком? Обычно он должен выполняться автоматически не реже одного раза в несколько минут, но кто знает.
Кроме того, как именно вы исследовали du
? Возможно, некоторые из этих файлов были перемещены где-то в какой-то другой каталог, и вы не заметили, что они еще не были удалены?
Вы также можете попробовать запустить find / -size +10000000c
для поиска файлов размером более 10 МБ.