дисковое пространство продолжает заполнение на экземпляре EC2 без очевидных файлов/каталогов

Возможный тест должен видеть, происходит ли это с клиентами Windows 7, соединяющимися через другую сеть/подсеть IP (если текущая ситуация происходит с клиентами локальной сети).

7
задан 1 December 2012 в 21:46
2 ответа

Если файл, который был удален, все еще открыт процессом, пространство не будет освобождено, пока процесс не закроет файл (или не будет убит). Если вы не можете идентифицировать процесс, который удерживает файл открытым, тогда поможет перезагрузка, так как она закроет все запущенные процессы (и, таким образом, закроет все открытые файлы).

Еще одним соображением является повреждение файловой системы. Поскольку это ваша корневая файловая система, вам может потребоваться перезагрузка и принудительная проверка файловой системы при перезапуске ( shutdown -rF now ). Убедитесь, что вы настроены на выполнение неинтерактивного сканирования + исправления, если у вас нет доступа KVM или аналогичного (чтобы вы могли взаимодействовать во время процесса загрузки), иначе ваш удаленный компьютер зависнет в ожидании локального ввода, если он обнаружит ошибки во время проверки.

Изменить: (согласно вопросу в комментарии)

Если вы знаете процесс, который держит файл открытым, вы можете просто перезапустить этот конкретный процесс (либо с помощью сценариев остановки / запуска / перезапуска службы, либо путем убийства и перезапуска вручную) а не весь экземпляр.

Также некоторые программы поддерживают возможность сбросить себя без перезапуска, что обычно включает закрытие и перезапуск файлов журнала (решение вашей проблемы, если это действительно связано с удаленным файлом журнала, который все еще открыт) в ответ для отправки сигнала SIGHUP (через kill ). Такой способ сброса процессов иногда предпочтительнее, поскольку он сокращает (часто до нуля) время, в течение которого серверный процесс не может принимать новые соединения. Это часто случается, когда вы запускаете /etc/init.d/ reload вместо /etc/init.d/

4
ответ дан 2 December 2019 в 23:40

Удалось освободить пространство без перезапуска для процесса, удерживающего его открытым, через ссылки fd в / proc // fd /.

1) перейти к пути файловых дескрипторов процесса хранения:

cd /proc/`lsof|grep '<deleted_file>'|head -1|awk '{print $2}'`/fd

2) найти ссылку на fd процесса:

ll | grep <deleted_file>

3) заменить пустым (все данные будут потеряны)

 > <fd>
2
ответ дан 2 December 2019 в 23:40

Теги

Похожие вопросы