Есть ли способ отслеживать дисковое пространство, освобожденное процессом?

Я знаком с различными методами отслеживания дискового ввода-вывода, как как скорость (например, байты / секунда), так и кумулятивно (например, байты) для операций чтения и записи, однако я не знаю (и не могу найти) никаких средств отслеживания объема дискового пространства, освобожденного процессом. Я подозреваю, что это может иметь какое-то отношение к сложностям определения, когда / как дисковое пространство «освобождается».

Например, rm file не перезаписывает содержимое файла какой-либо формой «ничего», а вместо этого очищает указатели и т. П. Другими словами, он в основном освобождает дисковое пространство, связанное с file . Но есть много других способов освобождения дискового пространства. Для ранее существовавшего непустого file выполнение file echo '' >file очищает его содержимое. Жесткие ссылки и файлы, которые открываются несколькими процессами, потенциально еще более затрудняют отслеживание использования диска, поскольку определение того, когда / как освобождается пространство, имеет некоторую степень неопределенности.

One Solution collect form web for “Есть ли способ отслеживать дисковое пространство, освобожденное процессом?”

«Дисковое пространство, освобожденное процессом», не очень полезно, потому что оно очень нечеткое. Если процесс A удаляет файл, который все еще открыт в процессе B, вы кредитуете A для освобождения пространства, когда он удаляет файл (тогда система освобождает место на диске) или B, когда он закрывает файл (тогда пространство фактически освобождается)? Если файл имеет две жесткие ссылки и два процесса, каждый из которых удаляет один из них примерно в одно и то же время, действительно ли имеет смысл присвоить второй для освобожденного пространства, а вовсе не первый? Если процесс перезаписывает сегмент файла, считается ли это освобождением перезаписанных данных? (Изменяется ли ваш ответ, если файловая система выполняет дедупликацию?) И т. Д.

Вы можете выбрать определение и инструмент кода ядра, чтобы отслеживать его, но это был бы произвольный выбор и имел бы ограниченную практическую полезность, поэтому он не является общедоступной функцией. У каждой функции есть затраты: время программиста для ее реализации, время программиста, чтобы поддерживать ее позже, риск ошибок, которые он вводит, память и потребление процессора …

Возможно, вы можете реализовать это (опять же, выбрав одно конкретное определение) для общих сценариев, используя существующие функции отладки, такие как Systemtap в Linux.

  • Учетная отметка уровня IO
  • Выполнение команды на сервере, но наличие локальных файлов для чтения / записи на сервере
  • Высокий уровень Iowait, в то время как пропускная способность и IOPS низки
  • Может ли программа «du» быть менее агрессивной?
  • Замена и труба процесса
  • IOStat сообщает о большой записи ocassional, но не находит никаких больших файлов
  • Как просмотреть приоритет ввода-вывода процесса?
  • Как уменьшить время ожидания (блокировки) процессов для чтения диска (только для обнаружения ошибки)?
  • Входной сигнал Bash
  • Сопоставляет ли символическая ссылка с диска A на диск B на ввод-вывод на диске A?
  • Отправка команды `time` в текстовый файл
  • Linux и Unix - лучшая ОС в мире.