- Начало работы с ML Space
- Инструкции
- Подключение и работа с источниками данных
- Создать коннектор
- Создать коннектор к экземпляру Relational Database Service SQL Server в Advanced
- Операции над коннекторами
- Создать правило переноса
- Операции над правилами переноса данных
- Переместить данные между внешними S3 и NFS
- Узнать или изменить квоты NFS на объем хранилища и количество объектов
- Скопировать путь до объекта на NFS
- Рекомендации по работе с архивами на NFS
- Использовать GitLab CI при работе с Environments
- Тарификация
- Термины и сокращения
- Обратиться в поддержку
Рекомендации по работе с архивами на NFS
Данные на NFS могут храниться в виде архива. Работа с архивами имеет ряд особенностей, которые обусловлены ограничениями архитектуры NFS на количество файлов и длину их имен.
Ограничения могут приводить к ошибке «Cannot open. File too large» со стороны файловой системы при попытке распаковать архив. Ошибка возникает, когда в процессе распаковки в одном каталоге одновременно появляется много файлов с длинными именами.
Работая с архивами:
Упаковывайте файлы в архив, если их более 100 000.
Реорганизуйте структуру данных. По возможности сгруппируйте файлы и переместите их в подкаталоги.
Выберите оптимальную длину названия файла. Эксперименты показали, что максимальное количество файлов, после которого проявляется ограничение файловой системы, линейно зависит от средней длины названия файла. Например, для создания одного каталога с 1 млн файлов средняя длина названия файла должна составлять не более 80–85 символов.
Используйте данные в архивах без предварительной разархивации. Таким образом, устраняется ограничение файловой системы на количество файлов, а также повышается ее производительность.
Увеличение производительности особенно заметно на медленных файловых системах, к которым относятся сетевые FS, в частности, NFS. В PyTorch это реализуется с помощью собственного класса для загрузки датасета, унаследованного от класса torch.utils.data.Dataset. Пример кода такого класса для датасета можно посмотреть в реализации класса torchvision.dataset.folder.DatasetFolder.