Почему большой видеофайл может скопироваться быстрее папки с документами, хотя данных в ней меньше? Канал тот же, сервер тот же, свободного места достаточно. Но скорость передачи большого файла плохо предсказывает, как система справится с тысячами отдельных объектов. Пока один поток последовательно передает содержимое, другой тратит время на открытие, обработку и закрытие каждого файла.
Для компании, которая переносит документы на собственные серверы, это вполне прикладной вопрос. Если в требованиях к хранилищу указаны только терабайты и число сотрудников, значительная часть будущей нагрузки пока остается неизвестной.
У файла есть содержимое и метаданные. Имя, размер, расположение, права доступа тоже нужно хранить и обрабатывать. При работе через сеть к этому добавляется ожидание ответов сервера. На большом файле служебные расходы распределяются на значительный объем данных. На маленьком они могут занимать заметную долю времени.
Масштаб легко увидеть на условном расчете. Допустим, обработка каждого файла требует всего одной дополнительной операции длительностью в миллисекунду. Если выполнять их последовательно, на миллион файлов уйдет тысяча секунд, или 16 минут 40 секунд. И это только добавленное ожидание.
В реальной системе операции могут выполняться параллельно, данные кешируются, запросы объединяются. Расчет не предсказывает время копирования, но показывает, почему размер папки в гигабайтах не объясняет всю работу с ней.
Даже просмотр папки может потребовать множества операций. Нужно получить список объектов, прочитать необходимые атрибуты, отсортировать результат. В документации CephFS приводится наглядный пример с командой ls -l. Она сначала получает содержимое каталога, затем запрашивает сведения о каждом файле. Чем больше объектов, тем больше работы, хотя сами документы никто не читает.
Там же есть существенная оговорка о кеше. Небольшой тестовый набор может целиком поместиться в памяти сервера метаданных. После перехода к значительно большему числу файлов условия изменятся, поэтому переносить результаты такого теста на весь архив нельзя.
При подготовке пилота полезнее воспроизвести структуру рабочих данных, чем просто набрать нужный объем. Папка с несколькими видео и дерево проектов с тысячами вложений проверяют разные сценарии. Повторное открытие знакомого каталога тоже стоит отделять от первого обращения к данным, которых еще нет в кеше.
Мегабайты в секунду показывают скорость передачи данных. IOPS отражает число операций ввода-вывода на измеряемом уровне системы. Пользователя интересует еще одна величина: сколько времени прошло от нажатия на папку до появления ее содержимого.
Эти показатели связаны, но не взаимозаменяемы. Одно действие в интерфейсе может вызвать несколько запросов к разным компонентам. Поэтому высокая производительность дисков сама по себе не гарантирует быстрого ответа приложения.
На пилоте стоит измерять время выполнения конкретных действий и долю ошибок, одновременно наблюдая за процессором, памятью, дисками и сетью. Так проще найти и проверить причину замедления.
Среднего времени ответа для этого мало. Полезен, например, p95, значение, в которое укладываются 95% измеренных длительностей. Он помогает увидеть медленные запросы, которые теряются за благополучным средним. Важно отслеживать распределение задержек, а также различать симптомы и причины.
Начать стоит с инвентаризации. Сколько файлов уже накоплено, как они распределены по размерам и каталогам, сколько появляется ежедневно. Затем определить число одновременно работающих пользователей и их обычные действия.
На этой основе можно собрать сценарий пилота. Например, одна группа открывает документы, другая загружает небольшие файлы, третья скачивает крупные архивы. Если резервное копирование пересекается с рабочими часами, его тоже стоит включить в испытание.
При пилотировании NextBox в сценарий нужно добавить используемые роли и расширения. Управление доступом, аудит и редактирование документов уже входят в возможности платформы, поэтому проверять следует конфигурацию, с которой предстоит работать сотрудникам.
До испытаний важно договориться о приемлемом времени выполнения операций. Затем постепенно увеличивать нагрузку и фиксировать момент, когда система перестает укладываться в требования.
Так у ИТ-службы появится основание для выбора инфраструктуры с учетом состава данных и числа одновременных обращений. А формулировка «нам нужно пять терабайт» получит необходимое продолжение: сколько в них файлов и что компания собирается с ними делать.