Vilken skriv är rätt? En titt på I / O-cachemetoder

Författare: Laura McKinney
Skapelsedatum: 1 April 2021
Uppdatera Datum: 25 Juni 2024
Anonim
Vilken skriv är rätt? En titt på I / O-cachemetoder - Teknologi
Vilken skriv är rätt? En titt på I / O-cachemetoder - Teknologi

Innehåll


Källa: Kgtoh / Dreamstime.com

Hämtmat:

En applikationshastighet beror till stor del på cache-I / O-hastighet. Här jämför vi olika cache-I / O-metoder.

Applikationsprestanda har rot i hastighet - hastighet när du fyller i läs- och skrivbegäran som dina applikationer kräver av din infrastruktur. Lagring är ansvarig för hastigheten för att returnera I / O (input / output) -förfrågningar, och metoden som valts för att begå skrivare och leverera läsningar har en djup inverkan på applikationsprestanda. En vanlig metod i dagens bransch är att använda SSD: er för caching på traditionell spindisklagring, hybridmatriser eller all-flash-arrayer. De flesta cachelösningar har påskyndat läsningar för applikationer, men den verkliga frågan kvarstår, "Vilken skrivning är rätt?"

Låt oss titta på varför skrivoptimering påverkar din applikationsprestanda så drastiskt. Skriv I / O innebär att det är nya data som inte skrivs på din underliggande lagring. I traditionell SAN-lagring skrivs till exempel skrivningar direkt på den underliggande lagringsenheten och returneras sedan till applikationen. Med applikationer som ständigt skriver nya data, främst stora databasapplikationer (SQL, etc.), kan traditionella snurrdiskar inte hålla jämna steg. Cachning på SSD: er blev en lösning som gjorde det möjligt att skriva lokalt och cachas baserat på frekvensen av applikationsbehovet; Det finns emellertid flera metoder för att skriva cache-förhållandet till den underliggande lagringen som orsakar en stor skillnad i prestanda.


Dessa är de tre formerna av I / O-skrivning:

  1. Writ-Around (runt cachen)
  2. Skriv igenom (genom cachen)
  3. Återställning (från cachen)

Alla tre formerna har olika fördelar som huvudsakligen baseras på den typ av data som skrivs: sekventiell kontra slumpmässig. Sekventiell I / O är den mest optimerade av den underliggande disken (filer eller videoströmmar till exempel), medan slumpmässiga I / Os är optimerade av cachen. De flesta cachemaskiner har inte den dynamiska intelligensen för att ändra formen för skrivteknik baserat på datatypen. Låt oss förstå skillnaden mellan de tre formerna för I / O-skrivning.

Skriv-Around

Omskrivning, även känd som läsbart cache-läge, är enbart fördelaktig för att frigöra utrymme till cache-läsningar. Inkommande I / O träffar aldrig cachen. I / Os skrivs direkt till permanent lagring utan att lagra data.


Vad kan möjligen vara fördelen med cachen om den inte används? Det hjälper till att minska cachen som översvämmas med skriv I / O som inte kommer att läsas igen, men har nackdelen att en läsbegäran för nyligen skriven data skapar en "cache-miss" och måste läsas från långsammare bulklagring och uppleva högre latens. Om din applikation är transaktionell, som de flesta uppdragskritiska applikationer är, kommer applikationshastigheten att avta och I / O-köerna växer. I huvudsak skulle värdet på detta läge vara för sällsynta fall eftersom det är tidskrävande, långsamt och inte utförande.

Skriva genom

Den här metoden används ofta i caching- och hybridlagringslösningar idag. Skriv igenom är känt som ett läst cache-läge, vilket innebär att all data skrivs till cachen och underliggande lagring samtidigt. Skrivningen betraktas ENDAST som fullständig när den har skrivits till din lagring. Låter faktiskt ganska säkert ... men det finns en hastighet nackdel.

Här är problemet: Varje skrivoperation utförs två gånger, i cachen och sedan i permanent lagring. Innan applikationer kan fortsätta måste den permanenta lagringen återställa I / O-åtagandet tillbaka till cachen och sedan tillbaka till applikationerna. Denna metod implementeras vanligtvis för misslyckande och för att undvika att implementera en failover- eller HA-strategi med cache eftersom data lever på båda platserna. Emellertid medför genomskrivning latens eftersom I / O-åtagandet bestäms av hastigheten på permanent lagring, vilket inte matchar hastigheterna för CPU och nätverk. Du är bara lika snabb som din långsammaste komponent och Writ-Through kan kritiskt hämma applikationshastigheten.

Inga buggar, ingen stress - din steg-för-steg-guide för att skapa livsförändrad programvara utan att förstöra ditt liv

Du kan inte förbättra dina programmeringsfärdigheter när ingen bryr sig om mjukvarukvalitet.

Skriv tillbaka

Återkoppling förbättrar systemresultaten med avseende på hastighet - eftersom systemet inte behöver vänta tills skrivningar går till underliggande lagring.

När data kommer in för att skrivas, kommer Writ-Back att lägga in data i cachen, en "allt gjort" och behålla data för skrivning till lagringsdisken senare.

Detta löser många av latensproblemen, eftersom systemet inte behöver vänta på de djupa skrivningarna.

Med rätt stöd kan Writ-Back vara den bästa metoden för flerstegscache. Det hjälper när cachen har stora mängder minne (dvs. minne uppmätt i terabyte, inte gigabyte) för att hantera stora aktivitetsvolymer. Sofistikerade system kommer också att behöva mer än en solid state-enhet, vilket kan lägga till kostnader. Det är kritiskt viktigt att ta hänsyn till scenarier som strömavbrott eller andra situationer där kritisk data kan gå förlorad. Men med rätt "cacheskydd" kan Writ-Back verkligen påskynda en arkitektur med få sidor. Till exempel kan Writ-Back-system använda RAID eller redundanta mönster för att hålla data säkra.

Ännu mer detaljerade system hjälper cachen och SAN eller underliggande lagringsdisk att arbeta med varandra på "efter behov", och delegerar skrivningar till antingen djuplagring eller cache, beroende på diskens arbetsbelastning.

Designfilosofin för Writ-Back är en som återspeglar den problemlösning som dagens avancerade datahanteringssystem ger stora uppgifter. Genom att skapa en mer komplex arkitektur och använda en cache på ett komplext sätt förstör Writ-Back latensproblem, och även om det kan kräva mer overhead, möjliggör det bättre systemtillväxt och färre växande smärta.