Как ограничить использование дискового пространства пользователями без квот?

В настоящее время я работаю в студенческом проекте (машинное обучение), где мы получаем доступ к ресурсам компаний. Они хранят свои данные на серверах Windows, но мы используем Linux-машины для доступа к данным. Кажется, что невозможно установить квоты. Причина в том, что данные хранятся на сервере Windows и что мои советники не имеют доступа к машине, на которой она хранится. Проблема в том, что время от времени ученики случайно используют ЭНЕРГОСУТОЧНЫЕ объемы дискового пространства, что приводит к огромным потерям пространства в резервных копиях. Например, я тренировал модель в течение 3 дней и регулярно создавал снимки модели. Это привело к использованию дискового пространства на 100 ГБ. Это проблема.

Можно ли предотвратить что-то подобное?

Я думал о задании CRON, которое выполняется для каждого пользователя, который регистрируется каждые 30 минут или около того. Задача CRON проверяет использование диска в домашней папке пользователей (например, du -s . ) И убивает все задания пользователя, если он использует слишком много памяти. У моего советника были опасения, что это будет стоить значительное количество времени для вычисления (процессорного времени).

Я только что попробовал это и первое исполнение du -s . занимает значительно больше времени, чем последующие казни. Почему это так? Будет ли мое предлагаемое решение работать или есть лучшие решения в той среде, которую я описал? (У нас есть корневой доступ к машинам, которые мы используем, но не к машине, где находятся наши домашние папки)

du -s должен работать в вашем контексте. Некоторые заметки, которые вы, возможно, захотите рассмотреть:

  • если пользователи предоставляют права на запись другим пользователям, цифры, сообщенные du могут быть искажены, поскольку они учитывают все файлы независимо от того, кто их владеет (что не является большой проблемой, поскольку штраф падает на пользователя, который дал разрешение, препятствуя практике )
  • стоимость рассмотрения на самом деле не является процессорным временем, но дисковый ввод-вывод, который может заметно повлиять на общую производительность системы; также может быть незначительным, это зависит от многих факторов
  • количество времени, которое может пройти через многие большие каталоги, может быть значительным, 30 минут может быть недостаточно

Последующие последующие исполнения могут занимать значительно меньше времени, чем первый (для нескольких / небольших каталогов), потому что в кеше файловой системы уже есть некоторые данные в памяти. Однако не основывайте свои расчеты на короткие промежутки времени, так как при обработке больших каталогов будет происходить сбой бурения, и вы увидите, что время больше в строке с 1-м исполнением.