Есть ли способ удалить файл 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, поскольку с ними это происходит очень быстро.
Альтернативное решение имеет отдельные диски и цикл между ними. Поэтому, когда вы закончили запись на один диск, вы переключаетесь на другой, и тогда вы можете использовать множество операций ввода-вывода для удаления содержимого, а не загружать активный диск.