Hem Mätning av lagringsprestanda baserat på verkliga tillämpningar

Mätning av lagringsprestanda baserat på verkliga tillämpningar

by Gästförfattare

Föreställ dig om din träningsapp bara registrerade dig när du gjorde en enkel kur som aldrig ändrades eller krävde någon justering av din ansträngningsnivå. 2D-diagrammet för ditt träningspass skulle se ut som den platta linjen på en hjärtmonitor, vilket ger lite upplysning om din totala prestation. Tyvärr är det så en plotlinje för ett syntetiskt riktmärke för arbetsstationslagringsprestanda ser ut. Dessa typer av riktmärken är utformade för att extrahera toppvärden ur lagringsenheten med hjälp av åtkomstspecifikationer som är kraftigt optimerade för firmware, drivrutiner och hårdvara.


Föreställ dig om din träningsapp bara registrerade dig när du gjorde en enkel kur som aldrig ändrades eller krävde någon justering av din ansträngningsnivå. 2D-diagrammet för ditt träningspass skulle se ut som den platta linjen på en hjärtmonitor, vilket ger lite upplysning om din totala prestation. Tyvärr är det så en plotlinje för ett syntetiskt riktmärke för arbetsstationslagringsprestanda ser ut. Dessa typer av riktmärken är utformade för att extrahera toppvärden ur lagringsenheten med hjälp av åtkomstspecifikationer som är kraftigt optimerade för firmware, drivrutiner och hårdvara.

Det klassiska fallet är att mäta slumpmässig IO vid 4K-blockstorlekar med mycket högt ködjup. I det här scenariot finns det stora möjligheter för leverantörer att optimera lagringskön och maximera IOPS-poängen (input/output operations per second) för enheten. Däremot har verkliga arbetsstationsapplikationer ett genomsnittligt IO-intervall på ett eller två. Med så låga ködjup har omordning och andra optimeringar inte lika dramatisk effekt på prestanda; flaskhalsen skiftar ner till rå hårdvarukapacitet, även med RAID eller aggressiva hybrid/tiered caching-arkitekturer.


En graf som plottar lagring läser och skriver för ett syntetiskt riktmärke. X-axeln är förskjutningen från en startplats där en IO inträffar. Y-axeln är blockstorleken för transaktionen som görs till den platsen. En blockstorlek på 128K skulle till exempel försöka läsa 128K data från enheten på någon offsetplats, allt i en begäran.

Oförutsägbara lagringsvägar
Verkliga arbetsstationsapplikationer följer inte förutsägbara vägar för optimal lagringsåtkomst. I en värld av icke-linjär videoredigering, till exempel, är en blockstorlek mer i linje med behållarformatet eller kodningsmetoden snarare än en optimal blockstorlek för mycket stora filöverföringar.

Det skulle vara betydligt snabbare för en applikation att använda 128K blockstorlekar för alla stora filer som läses in i minnet, och sedan passera dessa data i en mindre storlek. Men det faktum att applikationen dikterar andra, mindre optimala, metoder för att komma åt lagring gör varje syntetisk mätning mindre representativ för hur verkligt arbete bearbetas.

Videoredigering är bara ett exempel. Nästan alla applikationer, även de inom samma bransch, använder olika läs/skrivmetoder, vilket gör mätningen av toppprestandatillstånd i stort sett irrelevant. Det enda sättet att mäta lagring exakt är att efterlikna operationerna när de sker inom de faktiska applikationerna.

Förbättra metodiken
För sitt SPECwpc 2.1 benchmark, som släpptes i början av 2016, använde SPEC Workstation Performance Characterization (SPECwpc) underkommittén IOMeter – ett verktyg för mätning och karakterisering av IO-undersystem – för att simulera IO-aktivitet för en mängd olika professionella tillämpningar. Storleken och frekvensen av lagringstransaktioner samlades in från dessa applikationer och IOMeter använde data för att generera en sträng av lagringstransaktioner under en viss tidsperiod.

Även om denna teknik var bättre än att mäta en arbetsstations maximala bandbredd och latens, var den fortfarande inte särskilt nära vad applikationer faktiskt gör. Med sin nästa utgåva ville SPECwpc bättre efterlikna applikationsbeteende, samtidigt som det återspeglar effekten av nya solid-state-enheter, teknologier som NAND och 3D Xpoint och olika PCIe-anslutningsalternativ.

Vid utvecklingen av SPECworkstation 3-riktmärket, som släpptes i november 2018, använde SPECwpc Windows Process Monitor för att spåra lagringstransaktioner från en mängd olika professionella applikationer som är engagerade i verkligt arbete. SPECwpc skrev sedan ett uppspelningsverktyg för att översätta spåren till strömmar av lagringstransaktioner som är nästan identiska med dem från de faktiska applikationerna.


Läs/skriv för SPECworkstation 3 handbromsapplikation

Istället för att använda själva data från applikationerna, som skulle vara hundratals gigabyte stora, fyllde SPECwpc lagringsförfrågningarna med data som valdes slumpmässigt. Uppspelningsverktyget använder sedan flera trådar för att skriva till flera filer, precis som själva programmet.

SPECworkstation 3-riktmärket innehåller spår från en mängd olika applikationer, inklusive media och underhållning (3D-animering, rendering), produktutveckling (CAD/CAM/CAE), biovetenskap (medicinsk, molekylär), finansiella tjänster, energi (olja och gas). ), allmänna operationer och GPU-beräkning.

Applikationer som spåras för SPECworkstation 3-lagringsarbetsbelastningen inkluderar 7zip, Adobe Media Encoder, Adobe Premier Pro, Ansys Icepak, Ansys Mechanical, Autodesk 3ds Max, Autodesk Maya, Autodesk Revit, Blender, CalculiX, Dassault Systémes Solidworks, Handbroms, Lammps, Microsoft Visual Studio 2015, Namd, energivisningssetet SPECviewperf 13 och SPECworkstation 3 WPCcfd-arbetsbelastningen.


Läs/skriv för Calculix (CCX)-applikationen i SPECworkstation 3 benchmark

Ser framåt
Uppspelningsmetoden som används i SPECworkstation 3 skapar trådar på ett sätt som ligger någorlunda nära den verkliga applikationen, men den har fortfarande en central fråga: kronologin för IO:erna och eventuell synkronisering över trådar bevaras inte korrekt. Detta leder till fall där vissa trådar slutför vissa IO snabbare och samtidigheten av IOP över de olika trådarna inte är perfekt synkroniserad, vilket resulterar i enstaka kör-till-kör-variationer.

För SPECworkstation 4, planerad att släppas någon gång under 2020, kommer SPECwpc att arbeta med att bevara IO-kronologin på ett sätt som förhindrar IO:er från att sammansmälta när de når bussen till lagringsenheten.

En uppmaning till deltagande
Även om det inte är perfekt, är spårningen av lagringsoperationer från verkliga programbearbetningskommandon som de som genereras av arbetsstationsanvändare i olika branscher ett stort steg framåt.

SPECwpc-underkommittén – som inkluderar representanter från AMD, Dell, Fujitsu, HP, Intel, Lenovo och Nvidia – välkomnar synpunkter på framtida arbetsbelastningar från enhetsleverantörer, applikationsutvecklare och användare med intresse för lagringsprestanda.

Som med andra SPEC-riktmärken, kommer att leverera de mest exakta sätten att fånga och rapportera verkliga arbetsstationslagringsprestanda hjälpa utvecklare att förbättra sina processer i framtiden.

– Alex visar

Alex Shows är ordförande för SPEC Workstation Performance Characterization (SPECwpc) underkommitté och en Distinguished Engineer på Dell. Hans 23 års branscherfarenhet inkluderar 19 år av mjukvarudesign, utveckling och dokumentation; 17 års validering av hårdvaru- och drivrutinsdesign; och 10 år av tillämpad forskning inom hårdvaru- och mjukvaruteknik. Han har 12 patent med sex patentsökta. 

Om du vill veta mer om grafik och benchmarking för arbetsstationer, besök SPEC/GWPGs webbplats, prenumerera på SPEC/GWPG-nyhetsbrevet, eller gå med i Grafik och Workstation Benchmarking LinkedIn-grupp

SPEC/GWPG-riktmärken finns tillgängliga för gratis nedladdning till alla utom leverantörer av datorer och relaterade produkter och tjänster som inte är det medlemmar från SPEC Graphics and Workstation Performance Group (SPEC/GWPG).