Artykuł napisany przez Mario Gallegosa z HPC and AI Innovation Lab w październiku 2019 r.
Liczba węzłów klienta |
16 |
Węzeł klienta |
C6320 |
Procesory na węzeł klienta |
2 x Intel(R) Xeon(R) Gold E5-2697v4 18 rdzeni przy 2,30 GHz |
Pamięć na węzeł klienta |
12 modułów RDIMM, 16 GB, 2400 MT/s |
BIOS |
2.8.0 |
Jądro OS |
3.10.0-957.10.1 |
Wersja GPFS |
5.0.3 |
./iozone -i0 -c -e -w -r 8M -s 128G -t $Threads -+n -+m ./lista
wątków ./iozone -i1 -c -e -w -r 8M -s 128G -t $Threads -+n -+m ./lista wątków
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
Liczba wątków |
Liczba katalogów na wątek |
Łączna liczba plików |
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
Rysunek 6. Wydajność metadanych — małe pliki (4K)
System uzyskuje bardzo dobre wyniki dla operacji Stat i Removal, osiągając szczytową wartość na poziomie 128 wątków z odpowiednio 7,7 mln operacji na sekundę i 1 mln operacji na sekundę. Operacje usuwania osiągnęły maksymalną wartość 37,3 tys. operacji na sekundę, a operacje tworzenia osiągnęły maksymalną wartość 55,5 tys. operacji na sekundę, obie przy 512 wątkach. Operacje statystyk i usuwania mają większą zmienność, ale gdy osiągną wartość szczytową, wydajność nie spada poniżej 4 mln operacji na sekundę w przypadku statystyk i 200 tys. operacji na sekundę w przypadku usuwania. Operacje Create i Read mają mniejszą zmienność i rosną wraz ze wzrostem liczby wątków.
Ponieważ liczby te dotyczą modułu metadanych z pojedynczą macierzą ME4024, wydajność wzrośnie dla każdej dodatkowej macierzy ME4024, jednak nie możemy po prostu założyć liniowego wzrostu dla każdej operacji. O ile cały plik nie mieści się w inode dla takiego pliku, cele danych na ME4084 będą używane do przechowywania plików 4K, ograniczając do pewnego stopnia wydajność. Ponieważ rozmiar i-węzła wynosi 4 kB i nadal musi przechowywać metadane, tylko pliki o rozmiarze około 3 kB zmieszczą się w środku, a każdy plik większy niż ten będzie wykorzystywał cele danych.
Ten test jest prawie identyczny z poprzednimi, z tą różnicą, że użyto małych plików o wielkości 3KiB. Główna różnica polega na tym, że pliki te mieszczą się całkowicie w i-węźle. W związku z tym węzły pamięci masowej i ich ME4084 nie są używane, co zwiększa ogólną szybkość poprzez używanie tylko nośników SSD do przechowywania danych i ograniczenie dostępu do sieci.
Poniższe polecenie zostało użyte do wykonania testu porównawczego, gdzie Threads było zmienną z liczbą używanych wątków (od 1 do 512 zwiększanych w potęgach dwójki), a my_hosts.$Threads to odpowiedni plik, który przydzielał każdy wątek do innego węzła, używając round robin, aby rozłożyć je równomiernie na 16 węzłów obliczeniowych.
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
Rysunek 7. Wydajność metadanych - Małe pliki (3K)
System uzyskuje bardzo dobre wyniki dla operacji Stat i Read, osiągając szczytową wartość na poziomie 256 wątków z odpowiednio 8,29 mln operacji na sekundę i 5,06 mln operacji na sekundę. Operacje usuwania osiągnęły maksymalną wartość 609 tys. operacji na sekundę przy 128 wątkach, a operacje tworzenia osiągnęły szczyt przy 78 tys. operacji na sekundę przy 512 wątkach. Operacje Stat i Read mają większą zmienność niż operacje tworzenia i usuwania. Usunięcie ma niewielki spadek wydajności dla dwóch wyższych punktów wątków, co sugeruje, że trwała wydajność po 128 wątkach będzie nieco ponad 400 tys. operacji na sekundę. Liczba tworzonych wątków stale rosła do 512, ale wygląda na to, że osiąga plateau, więc maksymalna wydajność może nadal wynosić poniżej 100 tys. operacji/s.
Ponieważ małe pliki, takie jak te, są przechowywane w całości w module metadanych opartym na dysku SSD, aplikacje wymagające doskonałej wydajności małych plików mogą korzystać z jednego lub więcej opcjonalnych modułów metadanych o wysokim zapotrzebowaniu w celu zwiększenia wydajności małych plików. Jednak pliki, które mieszczą się w i-węźle, są małe według obecnych standardów. Ponadto, ponieważ cele metadanych wykorzystują macierze RAID1 ze stosunkowo małymi dyskami SSD (maksymalny rozmiar to 19,2 TB), pojemność będzie ograniczona w porównaniu z węzłami pamięci masowej. Dlatego należy zachować ostrożność, aby uniknąć zapełniania celów metadanych, co może powodować niepotrzebne awarie i inne problemy.
Wśród możliwości PixStor monitorowanie systemu plików za pomocą zaawansowanej analityki może być niezbędne, aby znacznie uprościć administrację, pomagając proaktywnie lub reaktywnie znajdować problemy lub potencjalne problemy. Następnie pokrótce omówimy niektóre z tych możliwości.
Rysunek 8 przedstawia użyteczne informacje dotyczące pojemności systemu plików. Po lewej stronie znajduje się łączna ilość zajętego miejsca w systemie plików oraz dziesięciu pierwszych użytkowników na podstawie wykorzystanej pojemności systemu plików. Po prawej stronie znajduje się widok historyczny z pojemnością używaną w ciągu wielu lat, a następnie dziesięć najczęściej używanych typów plików i dziesięć najlepszych zestawów plików, oba oparte na wykorzystanej pojemności, w formacie podobnym do wykresów Pareto (bez wierszy dla sum skumulowanych). Dzięki tym informacjom można łatwo znaleźć użytkowników, którzy otrzymują więcej niż należny im udział w systemie plików, trendy wykorzystania pojemności, aby pomóc w podjęciu decyzji o przyszłym wzroście pojemności, które pliki zajmują większość miejsca lub jakie projekty zajmują większość pojemności.
Rysunek 8. PixStor Analytics - Widok
pojemności Rysunek 9 przedstawia widok liczby plików z dwoma bardzo przydatnymi sposobami znajdowania problemów. Pierwsza połowa ekranu zawiera dziesięciu najlepszych użytkowników na wykresie kołowym oraz dziesięć pierwszych typów plików i dziesięć najlepszych zestawów plików (pomyśl o projektach) w formacie podobnym do wykresów Pareto (bez wierszy dla sum skumulowanych), wszystkie oparte na liczbie plików. Informacje te można wykorzystać do udzielenia odpowiedzi na kilka ważnych pytań. Na przykład, jacy użytkownicy monopolizują system plików, tworząc zbyt wiele plików, jaki typ pliku tworzy koszmar metadanych lub jakie projekty zużywają większość zasobów.
Dolna połowa ma histogram z liczbą plików (częstotliwość) dla rozmiarów plików przy użyciu 5 kategorii dla różnych rozmiarów plików. Można to wykorzystać, aby zorientować się w rozmiarach plików używanych w systemie plików, które w połączeniu z typami plików mogą być użyte do podjęcia decyzji, czy kompresja będzie korzystna.
Rysunek 9. PixStor Analytics - Widok liczby plików
Obecne rozwiązanie było w stanie zapewnić dość dobrą wydajność, która powinna być stabilna niezależnie od zajętego miejsca (ponieważ system został sformatowany w trybie rozproszonym), co widać w tabeli 4. Co więcej, rozwiązanie skaluje się pod względem pojemności i wydajności liniowo wraz z dodawaniem kolejnych modułów węzłów pamięci masowej, a podobnego wzrostu wydajności można oczekiwać od opcjonalnego modułu metadanych o wysokim zapotrzebowaniu. Rozwiązanie to zapewnia klientom HPC bardzo niezawodny równoległy system plików wykorzystywany przez wiele klastrów HPC z listy Top 500. Ponadto zapewnia wyjątkowe możliwości wyszukiwania, zaawansowane monitorowanie i zarządzanie, a dodanie opcjonalnych bramek umożliwia udostępnianie plików za pośrednictwem wszechobecnych standardowych protokołów, takich jak NFS, SMB i inne, dowolnej liczbie klientów.
Tabela 4 Szczytowa i trwała wydajność
|
Szczytowa wydajność |
Utrzymująca się wydajność |
||
Write |
Read |
Write |
Read |
|
Duży sekwencyjny N klientów do N plików |
16,7 GB/s |
23 GB/s |
16,5 GB/s |
20,5 GB/s |
Duży sekwencyjny N klientów do jednego udostępnionego pliku |
16,5 GB/s |
23,8 GB/s |
16,2 GB/s |
20,5 GB/s |
Losowe małe bloki N klientów do N plików |
15,8 tys. kart na sekundę |
20,4 tys. pakietów na sekundę |
15,7 tys. kart na sekundę |
20,4 tys. pakietów na sekundę |
Metadane puste pliki Create |
169,4 tys. IOPs |
127,2 tys. IOps |
||
Metadane puste pliki Stat |
11,2 mln IOps |
3,3 mln IOps |
||
Metadane puste pliki Read |
4,8 mln IOps |
2,4 mln IOPs |
||
Metadane puste pliki Remove |
194,2 tys. IOps |
144,8 tys. IOps |
||
Metadane pliki 4 kB Create |
55,4 tys. IOps |
55,4 tys. IOps |
||
Metadane pliki 4 kB Stat |
6,4 mln IOps |
4 mln IOps |
||
Metadane pliki 4 kB Read |
37,3 tys. IOps |
37,3 tys. IOps |
||
Metadane pliki 4 kB Remove |
1 mln IOps |
219,5 tys. IOps |
Ponieważ rozwiązanie ma zostać wydane z procesorami Cascade Lake i szybszą pamięcią RAM, gdy system będzie miał ostateczną konfigurację, zostaną przeprowadzone wyrywkowe kontrole wydajności. Przetestowanie opcjonalnego modułu metadanych High Demand Module z co najmniej 2x ME4024 i plikami 4 kB jest konieczne, aby lepiej udokumentować, jak skaluje się wydajność metadanych, gdy zaangażowane są cele danych. Ponadto wydajność węzłów bramy zostanie zmierzona i zgłoszona wraz z wszelkimi istotnymi wynikami kontroli na miejscu w nowym blogu lub białej księdze. Wreszcie, planowane jest przetestowanie i wydanie kolejnych komponentów rozwiązania, aby zapewnić jeszcze więcej możliwości.