Есть ли способ удалить файл 100 ГБ в Linux без перегрузки ввода-вывода / загрузки?

У меня есть огромный файл журнала, который мне нужно удалить на рабочем веб-сервере. Я боюсь, что это приведет к полному сбою системы, если я запишу его в Linux. Какие-нибудь блестящие идеи?

Обновить:

Файловая система: ext3

Раздел: /var (в основном журналы и данные MySQL)

Файл журнала больше не записывается в. (Никаких дополнительных данных не добавляется)

Веб-сервер LAMP (много ввода-вывода)

3 ответа

Решение

Может быть быстрее обнулить / обрезать файл, чем удалить его. Я также упоминаю об этом, потому что это действительно большой файл журнала, поэтому в него должно быть записано огромное количество операций процесса. Пытаться : > /path/to/logfile.log если вы не в состоянии остановить и запустить производственные услуги.

ionice -c3 rm yourfile.log это ваш лучший шанс, тогда rm будет принадлежать к классу I/O бездействия и использует I/O только тогда, когда это не нужно любому другому процессу. ext3 не является звездным при удалении огромных файлов, и с этим мало что можно поделать. Да, команда rm замедлит работу вашей системы. О степени медлительности и продолжительности удаления можно только догадываться, это сильно зависит от аппаратного обеспечения, версии ядра и настроек создания файловой системы ext3.

Для серверов журналов и других серверов с большими файлами я склонен использовать XFS, поскольку с ними это происходит очень быстро.

Альтернативное решение имеет отдельные диски и цикл между ними. Поэтому, когда вы закончили запись на один диск, вы переключаетесь на другой, и тогда вы можете использовать множество операций ввода-вывода для удаления содержимого, а не загружать активный диск.

Другие вопросы по тегам