Стаття написана Маріо Гальєгосом з HPC та AI Innovation Lab у жовтні 2019 року
Кількість клієнтських вузлів |
16 |
Клієнтський вузол |
С6320 |
Процесори на вузол клієнта |
2 x Intel(R) Xeon(R) Gold E5-2697v4 18 ядер @ 2.30 ГГц |
Пам'ять на вузол клієнта |
12 x 16 ГБ, 2400 МТ/с RDIMM |
BIOS |
2.8.0 |
Ядро ОС |
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)
Система отримує дуже хороші результати для операцій статистики та видалення, досягаючи свого пікового значення при 128 потоках з 7,7 Мб операцій/с та 1 М операцій/с відповідно. Операції видалення досягли максимуму 37,3 тис./с, а операції Create досягли свого піку з 55,5 тис./с, обидва при 512 потоках. Операції статистики та видалення мають більшу варіативність, але як тільки вони досягають свого пікового значення, продуктивність не опускається нижче 4 млн операцій/с для статистики та 200 тис. операцій/с для видалення. Create і Read мають меншу варіативність і продовжують збільшуватися зі зростанням кількості потоків.
Оскільки ці числа наведені для модуля метаданих з одним ME4024, продуктивність буде збільшуватися для кожного додаткового масиву ME4024, однак ми не можемо просто припустити лінійне збільшення для кожної операції. Якщо весь файл не вміщується в індексний дескриптор для такого файлу, для зберігання файлів 4K будуть використовуватися цілі даних на ME4084s, що певною мірою обмежує продуктивність. Оскільки розмір індексного дескриптора становить 4 КіБ, і він все ще потребує зберігання метаданих, всередину помістяться лише файли, розміром близько 3 КіБ, а будь-який файл, більший за це, використовуватиме цілі даних.
Цей тест майже повністю ідентичний попереднім, за винятком того, що використовувалися невеликі файли розміром 3КіБ. Основна відмінність полягає в тому, що ці файли повністю поміщаються всередині inode. Тому вузли зберігання даних та їх ME4084 не використовуються, що підвищує загальну швидкість за рахунок використання лише SSD-носіїв для зберігання та меншої кількості доступів до мережі.
Наступна команда була використана для виконання тесту, де Threads була змінною з кількістю використаних потоків (від 1 до 512 збільшених степенями двох), а 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)
Система отримує дуже хороші результати для операцій статистики та читання, досягаючи свого пікового значення при 256 потоках з 8,29 млн операцій/с та 5,06 млн операцій/с відповідно. Операції видалення досягли максимуму 609 Кбайт операцій/с при 128 потоках, а операції Create досягли свого піку з 78 Кбайт операцій/с при 512 потоках. Операції статистики та читання мають більшу варіативність, ніж операції створення та видалення. Видалення має невелике падіння продуктивності для двох точок вищих потоків, що свідчить про те, що стійка продуктивність після 128 потоків становитиме трохи більше 400 тисяч операцій/с. Кількість створень продовжувала збільшуватися до 512 потоків, але, схоже, досягає плато, тому максимальна продуктивність все ще може бути нижче 100 Кбайт операцій/с.
Оскільки такі невеликі файли повністю зберігаються в модулі метаданих на основі SSD, програми, що вимагають високої продуктивності малих файлів, можуть використовувати один або кілька додаткових модулів метаданих високого попиту для підвищення продуктивності малих файлів. Однак файли, які вміщуються в inode, за сучасними стандартами крихітні. Крім того, оскільки цілі метаданих використовують RAID1 з відносно невеликими SSD (максимальний розмір становить 19,2 ТБ), ємність буде обмежена порівняно з вузлами зберігання. Тому слід бути обережним, щоб уникнути заповнення цілей метаданих, що може спричинити непотрібні збої та інші проблеми.
Серед можливостей PixStor моніторинг файлової системи за допомогою розширеної аналітики може бути важливим для значного спрощення адміністрування, допомагаючи проактивно або реактивно знаходити проблеми чи потенційні проблеми. Далі ми коротко розглянемо деякі з цих можливостей.
На рисунку 8 показана корисна інформація на основі ємності файлової системи. Ліворуч показано загальний обсяг використаного простору файлової системи та десятку найкращих користувачів за обсягом використаної файлової системи. З правого боку — історичний перегляд із місткістю, що використовується протягом багатьох років, потім десять найпопулярніших типів файлів і десять найкращих наборів файлів, обидва на основі використаної ємності, у форматі, подібному до діаграм Парето (без рядків для кумулятивних підсумків). Маючи цю інформацію, можна легко знайти користувачів, які отримують більше, ніж належить, частку файлової системи, тенденції використання ємності для прийняття рішень щодо майбутнього зростання ємності, які файли займають більшу частину простору або які проекти займають більшу частину ємності.
Малюнок 8: PixStor Analytics - Перегляд
потужностей На рисунку 9 представлено перегляд кількості файлів з двома дуже корисними способами пошуку проблем. У першій половині екрана показано першу десятку користувачів на круговій діаграмі, а також десять найкращих типів файлів і десять найкращих наборів файлів (наприклад, проєкти) у форматі, подібному до діаграм Парето (без рядків для кумулятивних підсумків), усі на основі кількості файлів. Ця інформація може бути використана для відповіді на деякі важливі питання. Наприклад, які користувачі монополізують файлову систему, створюючи занадто багато файлів, який тип файлу створює кошмар метаданих або які проекти використовують більшу частину ресурсів.
У нижній частині розташовано гістограму з кількістю файлів (частотою) для розмірів файлів, використовуючи 5 категорій для різних розмірів файлів. Цим можна скористатися, щоб отримати уявлення про розміри файлів, які використовуються у файловій системі, які можна використовувати відповідно до типів файлів, щоб вирішити, чи буде стискання корисним.
Малюнок 9: PixStor Analytics - Перегляд кількості файлів
Поточне рішення змогло забезпечити досить хорошу продуктивність, яка, як очікується, буде стабільною незалежно від використовуваного простору (оскільки система була відформатована в режимі розсіювання), як видно з таблиці 4. Крім того, рішення лінійно масштабується за ємністю та продуктивністю, оскільки додається більше модулів вузлів зберігання, і аналогічне підвищення продуктивності можна очікувати від додаткового модуля метаданих високого попиту. Це рішення надає клієнтам HPC дуже надійну паралельну файлову систему, яка використовується багатьма кластерами Top 500 HPC. Крім того, він надає виняткові можливості пошуку, розширений моніторинг і управління, а додавання додаткових шлюзів дозволяє обмінюватися файлами через всюдисущі стандартні протоколи, такі як 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 кіло-сі |
20,4 кіло-секундних операцій |
15,7 кіло-секундних операцій |
20,4 кіло-секундних операцій |
Метадані Створення порожніх файлів |
169,4 тис. |
127,2 тис. |
||
Метадані Статистика порожніх файлів |
11,2 МБ IOps |
3,3 млн IOps |
||
Метадані Читання порожніх файлів |
4,8 млн IOps |
2,4 млн IOps |
||
Метадані Вилучити порожні файли |
194,2 тис. |
144,8 тис. |
||
Метадані Створення файлів 4KiB |
55,4 тис. |
55,4 тис. |
||
Метадані Статистика файлів 4KiB |
6,4 млн IOps |
4 млн входів-виходів |
||
Метадані Читання файлів 4KiB |
37,3 тис. |
37,3 тис. |
||
Метадані Вилучити файли 4KiB |
1 млн IOps |
219,5 тис входів-виходів |
Оскільки рішення планується випустити з процесорами Cascade Lake і швидшою оперативною пам'яттю, після того, як система отримає остаточну конфігурацію, буде проведено деякі вибіркові перевірки продуктивності. І протестуйте додатковий модуль метаданих високого попиту з принаймні 2 файлами ME4024 і 4 КіБ, щоб краще задокументувати, як продуктивність метаданих масштабується, коли йдеться про цільові дані даних. Крім того, продуктивність вузлів шлюзу буде вимірюватися та повідомлятися разом із будь-якими відповідними результатами вибіркових перевірок у новому блозі або білій книзі. Нарешті, планується протестувати та випустити більше компонентів рішення, щоб забезпечити ще більше можливостей.