Статья написана Марио Гальегосом из лаборатории HPC and AI Innovation Lab, октябрь 2019 г.
Количество клиентских узлов |
16 |
Клиентский узел |
C6320 |
Процессоров на клиентский узел |
2 процессора Intel(R) Xeon(R) Gold E5-2697v4, 18 ядер, тактовая частота 2,30 ГГц |
Объем памяти на клиентский узел |
12 модулей RDIMM, 16 ГБ, 2400 МТ/с |
BIOS |
2.8.0 |
Ядро OS |
3.10.0-957.10.1 |
Версия GPFS |
5.0.3 |
./iozone -i0 -c -e -w -r 8M -s 128G -t $Threads -+n -+m ./threadlist
./iozone -i1 -c -e -w -r 8M -s 128G -t $Threads -+n -+m ./threadlist
mpirun --allow-run-as-root -np $Threads --hostfile my_hosts.$Threads --mca btl_openib_allow_ib 1 --mca pml ^ucx --oversubscribe --prefix /mmfs1/perftest/ompi /mmfs1/perftest/lanl_ior/bin/ior -a POSIX -v -i 1 -d 3 -e -k -o /mmfs1/perftest/tst.file -w -s 1 -t 8m -b 128G
mpirun --allow-run-as-root -np $Threads --hostfile my_hosts.$Threads --mca btl_openib_allow_ib 1 --mca pml ^ucx --oversubscribe --prefix /mmfs1/perftest/ompi /mmfs1/perftest/lanl_ior/bin/ior -a POSIX -v -i 1 -d 3 -e -k -o /mmfs1/perftest/tst.file -r -s 1 -t 8m -b 128G
./iozone -i2 -c -O -w -r 4K -s 32G -t $Threads -+n -+m ./threadlist
mpirun --allow-run-as-root -np $Threads --hostfile my_hosts.$Threads --prefix /mmfs1/perftest/ompi --mca btl_openib_allow_ib 1 /mmfs1/perftest/lanl_ior/bin/mdtest -v -d /mmfs1/perftest/ -i 1 -b $Directories -z 1 -L -I 1024 -y -u -t -F
Количество потоков |
Количество каталогов на поток |
Общее количество файлов |
1. |
2048 |
2 097 152 |
2. |
1024 |
2 097 152 |
4 |
512 |
2 097 152 |
8 |
256 |
2 097 152 |
16 |
128 |
2 097 152 |
32 |
64 |
2 097 152 |
64 |
32 |
2 097 152 |
128 |
16 |
2 097 152 |
256 |
8 |
2 097 152 |
512 |
4 |
2 097 152 |
1024 |
2. |
2 097 152 |
mpirun --allow-run-as-root -np $Threads --hostfile my_hosts.$Threads --prefix /mmfs1/perftest/ompi --mca btl_openib_allow_ib 1 /mmfs1/perftest/lanl_ior/bin/mdtest -v -d /mmfs1/perftest/ -i 1 -b $Directories -z 1 -L -I 1024 -y -u -t -F -w 4K -e 4K
Рис. 6. Производительность метаданных — небольшие файлы (4K)
Система получает очень хорошие результаты для операций Stat и Remove, достигая своего пикового значения в 128 потоков с 7,7 млн операций в секунду и 1 млн операций в секунду соответственно. Операции удаления достигли максимальной производительности 37,3 тыс. операций в секунду, а операций создания — 55,5 тыс. операций в секунду при 512 потоках. Операции «Характеристика» и «Удаление» имеют большую вариативность, но как только они достигают своего пикового значения, производительность не падает ниже 4 млн операций в секунду для характеристик и 200 тысяч операций в секунду для удаления. Создание и чтение колеблются меньше всего и постоянно увеличиваются по мере увеличения количества потоков.
Поскольку эти числа относятся к модулю метаданных с одним массивом ME4024, производительность будет возрастать для каждого дополнительного массива ME4024, однако нельзя просто предполагать линейное увеличение для каждой операции. Если весь файл не помещается в индексный дескриптор для такого файла, целевые объекты данных на ME4084 будут использоваться для хранения файлов 4K, что в некоторой степени ограничивает производительность. Так как размер индексного дескриптора составляет 4 КиБ, и он все еще должен хранить метаданные, внутри будут находиться только файлы размером около 3 КиБ, а все файлы большего размера будут использовать целевые объекты данных.
Этот тест практически полностью идентичен предыдущим, за исключением того, что использовались небольшие файлы размером 3 КиБ. Основное отличие заключается в том, что эти файлы полностью помещаются внутри индексного дескриптора. Таким образом, узлы хранения данных и их ME4084 не используются, что повышает общую скорость за счет использования только твердотельных накопителей для хранения данных и меньшего объема сетевых доступов.
Следующая команда была использована для выполнения эталонного теста, где потоки были переменной с количеством используемых потоков (от 1 до 512, увеличивалось по степени числа 2), а файл my_hosts.$threads использовался для распределения каждого потока на разные узлы методом циклического перебора для равномерного распределения потоков между 16 вычислительными узлами.
mpirun --allow-run-as-root -np $Threads --hostfile my_hosts.$Threads --prefix /mmfs1/perftest/ompi --mca btl_openib_allow_ib 1 /mmfs1/perftest/lanl_ior/bin/mdtest -v -d /mmfs1/perftest/ -i 1 -b $Directories -z 1 -L -I 1024 -y -u -t -F -w 3K -e 3K
Рис. 7. Производительность метаданных — небольшие файлы (3K)
Система показывает очень хорошие результаты для операций Stat и Read, достигая пикового значения в 256 потоков с 8,29 млн операций в секунду и 5,06 млн операций в секунду соответственно. Операции удаления достигли максимальной производительности 609 тыс. операций в секунду при 128 потоках, а операции создания достигли пика в 78 тыс. операций в секунду при 512 потоках. Операции статистики и чтения более вариативны, чем операции создания и удаления. Удаление сопровождается небольшим падением производительности для двух более высоких точек потоков, что позволяет предположить, что устойчивая производительность после 128 потоков составит чуть более 400 тыс. операций в секунду. Количество создателей продолжало увеличиваться до 512 потоков, но, похоже, выходит на плато, поэтому максимальная производительность все еще может быть ниже 100 тыс. операций в секунду.
Поскольку небольшие файлы, подобные этим, полностью хранятся в модуле метаданных на основе SSD, приложения, требующие превосходной производительности малых файлов, могут использовать один или несколько дополнительных модулей метаданных с высокими требованиями для повышения производительности малых файлов. Однако файлы, которые помещаются в индексный дескриптор, очень малы по текущим стандартам. Кроме того, поскольку целевые объекты метаданных используют массивы RAID1 с относительно небольшими твердотельными накопителями (максимальный размер — 19,2 Тбайт), емкость будет ограничена по сравнению с узлами хранения. Поэтому необходимо соблюдать осторожность, чтобы избежать переполнения целевых объектов метаданных, что может привести к ненужным сбоям и другим проблемам.
Среди возможностей PixStor мониторинг файловой системы с помощью расширенной аналитики может быть важен для значительного упрощения администрирования, помогая заранее или реактивно находить проблемы или потенциальные проблемы. Далее мы кратко рассмотрим некоторые из этих возможностей.
На рис. 8 показана полезная информация, основанная на емкости файловой системы. Слева — общий объем используемого пространства файловой системы и первые десять пользователей по используемой емкости файловой системы. Справа — историческое представление с данными об используемой емкости за многие годы, а затем о десяти основных типах используемых файлов и десяти основных наборах файлов, основанных на используемой емкости в формате, аналогичном диаграммам Парето (без линий для нарастающих итогов). С помощью этой информации можно легко найти пользователей, получающих больше своей справедливой доли файловой системы, тенденции использования емкости для принятия решений, связанные с будущим увеличением емкости, тем, какие файлы занимают большую часть пространства или какие проекты занимают большую часть емкости.
Рис. 8. Аналитика PixStor — представление
о емкости На рисунке 9 приведено представление количества файлов с двумя очень полезными способами поиска проблем. В первой половине экрана отображаются десять самых активных пользователей в круговой диаграмме, а также десять основных типов файлов и десять лучших наборов файлов (например, проекты) в формате, похожем на диаграммы Парето (без линий для кумулятивных итогов), и все они основаны на количестве файлов. Эта информация может быть использована для ответа на некоторые важные вопросы. Например, какие пользователи монополизируют файловую систему, создавая слишком много файлов, какой тип файлов создает кошмар для метаданных или какие проекты используют большую часть ресурсов.
Нижняя половина имеет гистограмму с количеством файлов (частотой) для размеров файлов с использованием 5 категорий для различных размеров файлов. Это можно использовать для получения представления о размерах файлов, используемых в файловой системе, которые, согласованные с типами файлов, могут использоваться для принятия решения о пользе сжатия.
Рис. 9. PixStor Analytics — просмотр количества файлов
Текущее решение смогло обеспечить достаточно хорошую производительность, которая, как ожидается, будет стабильной независимо от используемого пространства (так как система была отформатирована в рассеянном режиме), как видно из таблицы 4. Кроме того, решение линейно масштабируется по мере добавления дополнительных модулей узлов хранения, и можно ожидать аналогичного увеличения производительности от дополнительного модуля часто запрашиваемых метаданных. Это решение предоставляет заказчикам HPC очень надежную параллельную файловую систему, используемую многими кластерами HPC из списка Top 500. Кроме того, он предоставляет исключительные возможности поиска, расширенный мониторинг и управление, а добавление дополнительных шлюзов позволяет обмениваться файлами по универсальным стандартным протоколам, таким как NFS, SMB и другие, с любым количеством клиентов, сколько необходимо.
Таблица 4 Пиковая и устойчивая производительность
|
Пиковая производительность |
Стабильная производительность |
||
Запись |
Чтение |
Запись |
Чтение |
|
Крупные последовательные операции N клиентов для N файлов |
16,7 ГБ/с |
23 ГБ/с |
16,5 ГБ/с |
20,5 ГБ/с |
Крупные последовательные операции N клиентов для одного общего файла |
16,5 ГБ/с |
23,8 Гбайт/с |
16,2 ГБ/с |
20,5 ГБ/с |
Произвольные операции с небольшими блоками N клиентов для N файлов |
15,8 тыс. iops |
20,4 тыс. iops |
15,7 тыс. iops |
20,4 тыс. iops |
Метаданные: создание пустых файлов |
169,4 тыс. IOPS |
127,2 тыс. операций ввода-вывода в секунду |
||
Метаданные: операция Stat для пустых файлов |
11,2 млн операций ввода-вывода в секунду |
3,3 млн операций ввода-вывода в секунду |
||
Метаданные: чтение пустых файлов |
4,8 млн операций ввода-вывода в секунду |
2,4 млн IOPS |
||
Метаданные: удаление пустых файлов |
194,2 тыс. операций ввода-вывода в секунду |
144,8 тыс. операций ввода-вывода в секунду |
||
Метаданные: создание файлов 4 КиБ |
55,4 тыс. операций ввода-вывода в секунду |
55,4 тыс. операций ввода-вывода в секунду |
||
Метаданные: операция Stat для файлов 4 КиБ |
6,4 млн операций ввода-вывода в секунду |
4 млн операций ввода-вывода в секунду |
||
Метаданные: чтение файлов 4 КиБ |
37,3 тыс. операций ввода-вывода в секунду |
37,3 тыс. операций ввода-вывода в секунду |
||
Метаданные: удаление файлов 4 КиБ |
1 млн операций ввода-вывода в секунду |
219,5 тыс. операций ввода-вывода в секунду |
Поскольку решение предназначено для использования с ЦП Cascade Lake и более быстрым ОЗУ, после окончательной настройки системы будут выполнены выборочные проверки производительности. Также протестируйте дополнительный модуль часто запрашиваемых метаданных как минимум с 2 ME4024 и файлами размером 4 КиБ, чтобы получить более полные данные о масштабировании производительности метаданных при использовании целевых устройств. Кроме того, производительность узлов шлюза будет измерена и опубликована вместе с соответствующими результатами выборочных проверок в новой статье блога или в техническом документе. Наконец, планируется тестирование и выпуск дополнительных компонентов решения для обеспечения еще большего количества возможностей.