Artikel skrevet af Mario Gallegos fra HPC og AI Innovation Lab i oktober 2019
Antal klientnoder |
16 |
Klientnode |
C6320 |
Processorer pr. klientnode |
2 x Intel(R) Xeon(R) Gold E5-2697V4, 18 kerner @ 2,30 GHz |
Hukommelse pr. klientnode |
12 x 16 GiB 2400 MT/s RDIMM'er |
BIOS |
2.8.0 |
OS-kerne |
3.10.0-957.10.1 |
GPFS-version |
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 --præfiks /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 --præfiks /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 --præfiks /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
Antal tråde |
Antal mapper pr. tråd |
Samlet antal filer |
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 --præfiks /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
Figur 6: Metadataydeevne – små filer (4K)
Systemet får meget gode resultater for stat- og fjernelsesoperationer, der når deres højeste værdi ved 128 tråde med henholdsvis 7.7M op / s og 1M op / s. Fjernelsesoperationer opnåede det maksimale på 37.3K op / s og Opret operationer, der nåede deres højdepunkt med 55.5K op / s, begge ved 512 tråde. Stat- og fjernelsesoperationer har større variabilitet, men når de når deres højeste værdi, falder ydeevnen ikke til under 4M op/s for statistik og 200K op/s for fjernelse. Opret og læs har mindre variation og fortsætter med at stige, efterhånden som antallet af tråde vokser.
Da disse tal er for et metadatamodul med en enkelt ME4024, øges ydeevnen for hvert yderligere ME4024-array, men vi kan ikke bare antage en lineær stigning for hver operation. Medmindre hele filen passer ind i inoden til en sådan fil, vil datamål på ME4084s blive brugt til at gemme 4K-filerne, hvilket begrænser ydeevnen til en vis grad. Da inodestørrelsen er 4KiB, og den stadig skal gemme metadata, passer kun filer omkring 3 KiB ind, og enhver fil, der er større end det, bruger datamål.
Denne test er næsten nøjagtig identisk med de foregående, bortset fra at små filer af 3KiB blev brugt. Den største forskel er, at disse filer passer helt ind i inoden. Derfor bruges lagernoderne og deres ME4084'er ikke, hvilket forbedrer den samlede hastighed ved kun at bruge SSD-medier til lagring og mindre netværksadgang.
Følgende kommando blev brugt til at udføre benchmarket, hvor tråde var variablen med antallet af anvendte tråde (1 til 512 øget i kræfter på to), og my_hosts.$Threads er den tilsvarende fil, der tildelte hver tråd på en anden knude ved hjælp af round robin for at sprede dem homogent på tværs af de 16 beregningsnoder.
mpirun --allow-run-as-root -np $Threads --hostfile my_hosts.$Threads --præfiks /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
Figur 7: Metadata ydeevne - Små filer (3K)
Systemet får meget gode resultater for Stat- og Read-operationer, der når deres højeste værdi ved 256 tråde med henholdsvis 8.29M op / s og 5.06M op / s. Fjernelsesoperationer opnåede maksimum på 609K op/s ved 128 tråde og Create-operationer, der nåede deres højdepunkt med 78K op/s ved 512 tråde. Statistik- og læsehandlinger har større variation end Opret og Fjern. Fjernelse har et lille fald i ydeevnen for de to højere trådpunkter, hvilket tyder på, at den vedvarende ydeevne efter 128 tråde vil være lidt over 400K op / s. Opretter blev ved med at øge op til 512 tråde, men ser ud til at nå et plateau, så den maksimale ydeevne stadig kan være under 100K op/s.
Da små filer som disse gemmes fuldstændigt på det SSD-baserede metadatamodul, kan programmer, der kræver overlegen ydeevne for små filer, bruge et eller flere valgfrie metadatamoduler med høj efterspørgsel til at øge ydeevnen for små filer. Filer, der passer ind i inoden, er dog små efter nuværende standarder. Da metadatamålene desuden bruger RAID1'er med SSD'er, der er relativt små (maks. størrelse er 19,2 TB), vil kapaciteten være begrænset sammenlignet med storagenoderne. Derfor skal der udvises forsigtighed for at undgå at udfylde metadatamål, hvilket kan forårsage unødvendige fejl og andre problemer.
Blandt PixStor-funktioner kan overvågning af filsystemet via avanceret analyse være afgørende for i høj grad at forenkle administrationen, hvilket hjælper med proaktivt eller reaktivt at finde problemer eller potentielle problemer. Dernæst vil vi kort gennemgå nogle af disse funktioner.
Figur 8 viser nyttige oplysninger baseret på filsystemets kapacitet. I venstre side er filsystemets samlede plads, der bruges, og de ti bedste brugere baseret på filsystemets anvendte kapacitet. I højre side en historisk visning med kapacitet brugt over mange år, derefter de ti bedste anvendte filtyper og de ti bedste filsæt, begge baseret på den anvendte kapacitet, i et format, der ligner pareto-diagrammer (uden linjerne for kumulative totaler). Med disse oplysninger kan det være let at finde brugere, der får mere end deres rimelige andel af filsystemet, tendenser i kapacitetsudnyttelsen for at hjælpe beslutninger om fremtidig vækst for kapacitet, hvilke filer der bruger det meste af pladsen, eller hvilke projekter der tager det meste af kapaciteten.
Figur 8: PixStor-analyse – visning af kapacitet
Figur 9 giver en filtællingsvisning med to meget nyttige måder at finde problemer på. Den første halvdel af skærmen har de ti bedste brugere i et cirkeldiagram og top ti filtyper og top ti filsæt (tænk projekter) i et format, der ligner pareto-diagrammer (uden linjerne for kumulative totaler), alt baseret på antal filer. Disse oplysninger kan bruges til at besvare nogle vigtige spørgsmål. For eksempel hvilke brugere, der monopoliserer filsystemet ved at oprette for mange filer, hvilken type fil skaber et metadatamareridt, eller hvilke projekter der bruger de fleste ressourcer.
Den nederste halvdel har et histogram med antal filer (frekvens) for filstørrelser ved hjælp af 5 kategorier til forskellige filstørrelser. Dette kan bruges til at få en idé om de filstørrelser, der bruges på tværs af filsystemet, som koordineret med filtyper kan bruges til at beslutte, om komprimering vil være gavnlig.
Figur 9: PixStor Analytics - Filoptællingsvisning
Den nuværende løsning var i stand til at levere ret god ydeevne, som forventes at være stabil uanset den anvendte plads (da systemet blev formateret i spredt tilstand), som det kan ses i tabel 4. Desuden skaleres løsningen lineært i kapacitet og ydeevne, efterhånden som flere lagernodemoduler tilføjes, og en lignende præstationsforøgelse kan forventes fra det valgfri metadatamodul med høj efterspørgsel. Denne løsning giver HPC-kunder et meget pålideligt parallelt filsystem, der bruges af mange Top 500 HPC-klynger. Derudover giver den enestående søgefunktioner, avanceret overvågning og styring og tilføjelse af valgfrie gateways tillader fildeling via allestedsnærværende standardprotokoller som NFS, SMB og andre til så mange klienter som nødvendigt.
Tabel 4 Maksimal og vedvarende ydeevne
|
Optimal ydeevne |
Vedvarende ydeevne |
||
Skrive |
Læse |
Skrive |
Læse |
|
Store sekventielle N-klienter til N-filer |
16,7 GB/s |
23 GB/s |
16,5 GB/s |
20,5 GB/s |
Store sekventielle N-klienter til en enkelt delt fil |
16,5 GB/s |
23,8 GB/s |
16,2 GB/s |
20,5 GB/s |
Tilfældige små blokke N-klienter til N-filer |
15,8 KIOps |
20.4KIOps |
15,7 KIOps |
20.4KIOps |
Metadata: Opret tomme filer |
169,4K IOps |
127,2 K IOps |
||
Metadata Stat tomme filer |
11,2 mio. IOps |
3,3 mio. IOps |
||
Metadata Læs tomme filer |
4,8 mio. IOps |
2,4 mio. IOps |
||
Metadata: Fjern tomme filer |
194,2 K IOps |
144,8K IOps |
||
Metadata Opret 4KiB-filer |
55,4K IOps |
55,4K IOps |
||
Metadata Stat 4KiB-filer |
6,4 mio. IOps |
4 mio. IOps |
||
Metadata Læs 4KiB-filer |
37,3K IOps |
37,3K IOps |
||
Metadata Fjern 4KiB-filer |
1 mio. IOps |
219,5K IOps |
Da løsningen er beregnet til at blive frigivet med Cascade Lake-CPU'er og hurtigere RAM, når systemet har den endelige konfiguration, vil der blive udført nogle præstationsstikprøver. Og test det valgfrie High Demand Metadata Module med mindst 2 x ME4024s- og 4KiB-filer er nødvendig for bedre at dokumentere, hvordan metadataydeevnen skaleres, når datamål er involveret. Derudover vil resultaterne for gateway-noderne blive målt og rapporteret sammen med eventuelle relevante resultater fra stikprøvekontrollerne i en ny blog eller en hvidbog. Endelig er det planlagt, at flere løsningskomponenter skal testes og frigives for at give endnu flere funktioner.