Hem Företag Använda SSD-cacheprogramvara för att öka lagrings-I/O-hastighet och applikationsprestanda

Använda SSD-cacheprogramvara för att öka lagrings-I/O-hastighet och applikationsprestanda

by Gästförfattare

Många IT-chefer har hört talas om fördelarna (låg effekt, hög IO-bandbredd, låg latens) med att lägga till SSD:er till sina befintliga system för att förbättra IO-hastigheten och applikationsprestanda. De har också hört om några av de problem som är förknippade med att lägga till SSD:er som höga kostnader, enhetsslitage och störningar i dataorganisationen. Ändå är SSD:er här för att stanna och listan över leverantörer och produkter blir större för varje dag. Det enklaste sättet att dra fördel av SSD-fördelarna är att distribuera SSD:er som cache. Men även att göra något som låter så enkelt kan slösa bort denna värdefulla resurs. Ange konceptet för SSD-cacheprogramvara. SSD-cacheprogramvara används för att sömlöst hantera dataflödet till SSD:n för att maximera avkastningen på investeringen för denna dyra teknik.


Av Peter Velikin VP Online Marketing, VeloBit, Inc.

Många IT-chefer har hört talas om fördelarna (låg effekt, hög IO-bandbredd, låg latens) med att lägga till SSD:er till sina befintliga system för att förbättra IO-hastigheten och applikationsprestanda. De har också hört om några av de problem som är förknippade med att lägga till SSD:er som höga kostnader, enhetsslitage och störningar i dataorganisationen. Ändå är SSD:er här för att stanna och listan över leverantörer och produkter blir större för varje dag. Det enklaste sättet att dra fördel av SSD-fördelarna är att distribuera SSD:er som cache. Men även att göra något som låter så enkelt kan slösa bort denna värdefulla resurs. Ange konceptet för SSD-cacheprogramvara. SSD-cacheprogramvara används för att sömlöst hantera dataflödet till SSD:n för att maximera avkastningen på investeringen för denna dyra teknik.

Varför cache applikationsdata i första hand?

Enkelt uttryckt används cacher för att påskynda tillgången till data. En cache är en komponent som placeras framför en primär enhet för att transparent lagra data så att framtida dataförfrågningar kan levereras snabbare. När data passerar genom en cache på väg till eller från den primära enheten, lagras en del av datan selektivt i cachen. När en applikation eller process senare kommer åt data som lagrats i cachen (en cacheträff) kan den begäran serveras snabbare från cachen än från den långsammare enheten. Ju fler förfrågningar som kan betjänas från cachen, desto snabbare är den övergripande systemets prestanda.

Det finns en avvägning mellan cachekostnad och prestanda. Större cacher ger en högre träfffrekvens för cache och därför bättre prestanda. Tyvärr är hårdvaran som används för cache i allmänhet dyrare än hårdvaran som används för den primära enheten. Cachedesign är en avvägning mellan storlek och prestanda.

Varför använda SSD som cache?

Som nämnts ovan har SSD:er flera funktioner som gör dem idealiska att använda som valfri cachelösning. SSD:er har blixtrande IO-hastigheter vilket är det primära målet med att cache data i första hand. Att använda SSD som primära lagringsenheter är dyrt och att bara installera dem i ett befintligt system innebär utmaningar eftersom de flesta applikationer inte skrevs med SSD i åtanke. Programvara för dataindelning var tänkt att lösa problem som detta, men det slutade bara med att orsaka mer huvudvärk och kostnader. Så om du ska investera i SSD:er, håll det enkelt och distribuera SSD:er som cache.

Vad är svårt med att använda SSD som cache?

Tja, om du kommit så långt i artikeln kan du hantera sanningen. SSD:er är inte perfekta. De har problem kopplade till fysiken i flashminnet som används för att göra dem. För det första har SSD-enheter asymmetrisk läs/skrivprestanda. Läsoperationer är mycket snabbare än skrivoperationer. Naturligtvis måste man skriva in dem någon gång men skrivandet måste skötas noggrant. För det andra slits SSD:er ut. Det finns ett begränsat antal skrivcykler till SSD:n innan flashminneskretsen har cellfel. Så att skriva till SSD:n måste hanteras noggrant. För det tredje uppvisar SSD:er ett fenomen som kallas "write amplification" vilket i princip betyder att en enda skrivning till SSD kan resultera i många omskrivningar eftersom data omorganiseras på SSD för att göra plats för den nya skrivningen. Detta saktar ner prestanda och förkortar livslängden på SSD:n. Nu kör vi igen: att skriva till SSD:n måste hanteras noggrant.

Hur man "noggsamt hanterar skrivning" till SSD:n

Det är bra att distribuera SSD:er som cache. Obegränsad skrivning till SSD:er är dåligt. Vad kan man göra åt detta? Jo, Business 101 har gett svaret: utvecklingen av mjukvaruindustrin för SSD-cache. Smarta människor såg fördelarna med SSD-enheter och de kom på ett sätt att minimera nackdelarna genom att utveckla programvara för att (du gissade rätt) noggrant hantera skrivdata till SSD-enheter. SSD-cacheprogramvara har tre huvudmål:

  • Hantera SSD-cachen på ett öppet sätt så att applikationsmjukvaran inte behöver ändras
  • Bestäm vilken data som är en bra kandidat att lagra i SSD:er och vilken data som ska skickas till primär lagring
  • Minimera skrivningen av data till SSD:n för att minska skrivförstärkningen

Vanliga typer av SSD-cache

Eftersom storleken på en SSD-cache vanligtvis bara är en bråkdel av den totala datamängden, kommer inte all applikationsdata att rymmas i cachen. En cache är mest effektiv om den innehåller data som med största sannolikhet kommer att nås i framtiden. Målet med cachealgoritmdesign är att på något sätt "förutsäga" vilken data som kommer att nås så att en optimal delmängd av datan hålls i cachen. Ju bättre förmåga att förutsäga framtida dataåtkomst, desto högre träfffrekvens för cacheminnet och desto bättre blir applikationens prestanda.

Tre typer av vanliga SSD-cachealgoritmer är:

  • Temporal locality caching som lagrar data baserat på hur nyligen den användes
  • Spatial locality caching som lagrar data baserat på dess fysiska lagringsplats
  • Innehållslokalcachning som lagrar datablock som används mest och refereras till

Vissa cachningsalgoritmer är generiska; nya cachningsalgoritmer som cachning av innehållslokalitet är speciellt designade för SSD. När du väljer en SSD-cache-mjukvarulösning bör du undersöka om cachningsalgoritmen är lämpad för mönstret av data som ska cachelagras på SSD (så att du kan få högre cacheträffhastigheter och bättre prestanda) och om cachningsmjukvaran noggrant hanterar skrivningar till SSD (så att du får bättre SSD-prestanda och tillförlitlighet). Och, naturligtvis, benchmark prestanda för varje lösning: du distribuerar SSD för att öka prestandan; ju bättre pris/prestanda, desto högre ROI.

Peter är vice VD för onlinemarknadsföring på VeloBit, Inc, ansvarig för all marknadsföring. Han har 12 års erfarenhet av att skapa nya marknader och kommersialisera produkter inom flera högteknologiska industrier. Före VeloBit var han marknadschef på Zmags, en SaaS-baserad digital innehållsplattform för e-handel och mobila enheter, där han hanterade alla aspekter av marknadsföring, produktledning och affärsutveckling. Dessförinnan var Peter Director of Product and Market Strategy på PTC och på EMC Corporation, där han hade roller inom produktledning, affärsutveckling och ingenjörsprogram. Peter har en MS i elektroteknik från Boston University och en MBA från Harvard Business School.

Diskutera denna artikel