Современные распределённые файловые системы играют ключевую роль в хранении больших объёмов данных и обеспечении их доступности в масштабируемых вычислительных кластерах. Одной из наиболее важных задач при разработке и эксплуатации таких систем является понимание их производительности и масштабируемости в реальных условиях. Анализ характеристик сетевого хранения и масштабирования позволяет сформировать представление о том, какие узкие места возникают в процессе работы, и как их можно оптимизировать. Рассмотрим на примере 3FS - распределённой файловой системы, разработанной компанией DeepSeek. Эта система ориентирована на высокопроизводительные вычислительные кластеры, использующие современные технологии хранения и передачи данных.
В основе анализа лежат данные микробенчмарков, проведённых на кластерах различного уровня и конфигурации оборудования. Одним из ключевых аспектов оценки производительности выступает сетевой интерфейс, ведь скорость передачи данных между узлами напрямую влияет на общую эффективность системы. В современных кластерах широко применяются сетевые технологии InfiniBand с пропускной способностью 100 Гбит/с и выше, что обеспечивает теоретический предел передачи до 12,5 ГБ/с. В реальных тестах система демонстрирует пропускную способность до 11,5 ГБ/с при сообщениях размером 4-8 КБ, что составляет около 92% от теоретической максимальной скорости. При этом латентность передачи при таких размерах сообщений достигает всего 5 мкс, а при увеличении нагрузки остаётся достаточно стабильной.
Интересно отметить, что при двунаправленной передаче данных пропускная способность удваивается, приближаясь к теоретическому пределу для каждого направления. Параллельная обработка трафика достигается за счёт выделения аппаратных ресурсов на передачу и приём данных отдельно, что улучшает общую пропускную способность и снижает задержки. Эти результаты важны для понимания того, как 3FS распределяет нагрузку в сети и какого уровня производительность можно ожидать на реальных кластерах. Вторая составляющая - локальное хранилище данных. Здесь сравниваются SSD накопители двух типов: SATA SSD с пропускной способностью до 450 МБ/с для последовательного чтения и NVMe SSD, обеспечивающие до 6,2 ГБ/с последовательного чтения и значительно меньшую задержку.
Тесты с использованием инструмента FIO показали, что NVMe диски дают порядка десятикратное превосходство по пропускной способности над SATA, при этом задержка при чтении данных практически в 20 раз ниже. При анализе производительности накопителей важную роль играет размер блока данных и глубина очереди операций ввода-вывода. Для SATA SSD оптимальная производительность достигается при размере блока около 64 КБ, при этом увеличение глубины очереди сверх определённого порога приводит к росту задержек без значительного улучшения пропускной способности. Модернные NVMe диски требуют больших значений параметров параллелизма, чтобы полностью раскрыть потенциал своей скорости. Это говорит о том, что для достижения максимальной производительности 3FS необходимо правильно выбирать конфигурацию параметров ввода-вывода в зависимости от используемого типа хранилища.
Когда приходит время объединять сетевые и локальные ресурсы в распределённой системе, возникает вопрос, насколько близко к теоретическим пределам удаётся подойти в реальной работе 3FS. В среднем для чтения блоков размером 1 МБ сеть добавляет к задержке порядка 0,1 мс, а доступ к диску - порядка 0,5 мс. При записи, учитывая необходимость репликации данных, задержка становится почти в три раза выше. В результате средняя задержка чтения составляет около 1 мс, тогда как запись может достигать 2,5 мс, что больше, чем предполагалось исходя из теоретических расчётов. Наиболее заметно влияние маеющейся аппаратной инфраструктуры на масштабирование.
Обычно увеличение количества узлов ведёт к снижению пропускной способности на один узел из-за сетевых ограничений. Например, при использовании SATA SSD и сети 25 Гбит/с суммарная пропускная способность кластера не достигает теоретической максимальной из-за существенной сетевой узкой точки. Напротив, современные кластеры с NVMe дисками и быстрым InfiniBand демонстрируют лучшие характеристики масштабируемости, позволяя приблизиться к максимальной пропускной способности сети. 3FS демонстрирует предсказуемое поведение: при увеличении размера блока операций пропускная способность растёт, но задержка повышается. Малые блоки обеспечивают низкие задержки, но не позволяют в полной мере использовать пропускную способность.
Аналогично, рост числа параллельных операций позволяет увеличить throughput, но приводит к росту задержки из-за управленческой нагрузки и конкуренции за ресурсы. Особенным моментом считается программная составляющая 3FS, которая накладывает дополнительный оверхед в миллисекундном масштабе. Это связано с особенностями реализации протоколов репликации, управления очередями I/O и работы с сетью. Разработчики 3FS предоставляют два основных интерфейса ввода-вывода: стандартный io_uring и кастомизированный USRBIO, интегрированный прямо в систему. Тесты показывают, что io_uring зачастую обеспечивает меньшую задержку по сравнению с USRBIO, хотя оба интерфейса дают схожую пропускную способность.
Понимание того, как 3FS ведёт себя при разных нагрузках и конфигурациях, позволяет проектировщикам выбирать оптимальные параметры и аппаратную базу для построения высокоэффективных вычислительных кластеров. Важно учитывать, что нет универсального решения: оптимальные размеры блоков и уровни параллелизма зависят от конкретных задач и характеристик узлов. Таким образом, анализ сетевых и локальных аспектов распределённого хранения выявляет важные закономерности. Ограничения, связанные с полосой пропускания сети, зачастую становятся основным узким местом, особенно на кластерах с более медленными сетями. Современные высокоскоростные технологии и NVMe хранилища открывают новые возможности, позволяя достичь качественно новых показателей производительности и масштабируемости.
Дальнейшее исследование 3FS предполагает изучение его поведения в реальных рабочих нагрузках и сравнительный анализ с другими файловыми системами. Интерактивные графики и подробные отчёты микробенчмарков помогают глубже понять, где возникают узкие места, какие настройки важны для оптимизации, и как минимизировать задержки и избыточные расходы ресурсов. В заключение, глубокое понимание взаимосвязи между аппаратной платформой, сетевой инфраструктурой и программным обеспечением является ключевым фактором успеха при построении распределённых файловых систем. Именно такой комплексный подход позволяет создавать масштабируемые и надёжные решения, способные эффективно обрабатывать растущие объёмы данных и изменяющиеся требования современных вычислительных задач. .