💡 Как удалить огромные (100-200 ГБ) файлы на Linux
Это может быть не так просто, как кажется, с точки зрения времени, затрачиваемого на удаление файла (планирование ввода-вывода), а также объема оперативной памяти, потребляемой при выполнении операции.
Основная цель – использовать технику, которая не будет замедлять работу системы при удалении огромного файла, приводя к разумному вводу-выводу.
Достичь этого можно с помощью команды ionice.
ionice устанавливает или получает класс и приоритет планирования ввода-вывода для другой программы.
Если аргументов нет или задан только параметр -p, ionice запросит текущий класс планирования ввода-вывода и приоритет для данного процесса.
Если задать имя команды, например, rm command, то будет выполнена эта команда с заданными аргументами.
Чтобы указать идентификаторы запущенных процессов, для которых необходимо получить или установить параметры планирования, выполните следующее:
$ionice -p PID
Для указания имени или номера используемого класса планирования (0 – нет, 1 – в реальном времени, 2 – в ускоренном режиме, 3 – в простое) используется следующая команда:
$ionice -c 3 rm /var/logs/syslog
$ionice -c 3 rm -rf /var/log/apache
Это означает, что rm будет принадлежать к классу idle I/O и использовать ввод/вывод только тогда, когда это не нужно никакому другому процессу:
Если в системе не будет много времени простоя, то можно использовать класс планирования best-effort и установить низкий приоритет, например, такой:
$ionice -c 2 -n 6 rm /var/logs/syslog
$ionice -c 2 -n 6 rm -rf /var/log/apache
Более подробную информацию можно найти на man-странице ionice:
$man ionice
Linux / Линукс 🥸