sql >> Databasteknik >  >> RDS >> PostgreSQL

Intel SSD, nu utanför sh..err, skamlistan

Jag har redan gjort det långa konferensinlägget här, så bara en snabb uppdatering: bilder från PGEast läggs upp och nästa vecka kommer jag att vara på den allt mer felaktiga namnet MySQL Conference i Santa Clara, Kalifornien.

En sak jag är känd för nu är att gnälla om billiga Solid State-enheter och hur de suger för databasanvändning. Wikisidan Reliable Writes samlar det mesta av bakgrunden här. Situationen de senaste åren har varit att alla billiga enheter på marknaden inte har en säker skrivcache för databasanvändning. Varje kund till mig som har köpt en av Intels SSD-enheter till exempel, antingen X25-M eller X25-E som inte är företagare, har drabbats av minst en massiv datakorruption.

För att göra en flash-enhet säker måste du ha en batteribackup på enheten, av samma skäl som de behövs på högpresterande RAID-kontroller. När databasen skriver data och använder fsync-systemanropet för att se till att den spolas till disken, kan du inte fysiskt skriva den datan tillräckligt snabbt för att göra människor nöjda, på vare sig snurrande disk eller flash. Situationen är till och med något värre med flash, eftersom att skriva ut små commits av data utan cache kommer faktiskt att slita ut enheten snabbare också. Lägg till ett batteri, få enhetens styrenhet att spola alla väntande data när strömmen faller, och du kan göra SSD tillförlitlig nog för databaser.

Riktigt dyra företagsenheter har fått detta rätt ett tag nu, men hårdvara som lämpar sig för hemmabruk eller småföretag har varit knapp. OCZ släppte sin Vertex 2 Pro-enhet med superkondensator och ordentlig skrivspolning förra året. Kondensatorn är "Pro"-delen, och blanda inte ihop detta med den vanliga Vertex 2.  De har kört runt $650 för 100 GB SSD och är riktigt snabba. Men du kan inte bara ha en snabb enhet: de misslyckas, på samma sätt som alla andra komponenter i din dator. Och $1300 för ett par enheter har lämnat dem fortfarande utanför utbudet av små butiker, och till och med en enda har överskridit min personliga budget för att mixtra med hårdvara.

Nåväl, nu finns det ett annat val. Intel har äntligen städat upp här. De nya 320-seriens enheter från dem integrerar en uppsättning små kondensatorer och korrekt avstängningslogik i enheten. De har till och med gjort det till en del av marknadsföringen nu när de gör det rätt, inklusive en snygg genomgång om hur det fungerar. Det är där det här ämnet är nu, förresten: om tillverkaren skriver caching korrekt kommer de att skryta om det. Om du inte hör något skryt betyder det att de har gjort det sönder, och enheten kommer att äta upp din databas.

Det finns en hel produktlinje av dessa nya Intel-enheter tillgängliga, från en under-$100 40GB-modell, alla med samma skrivtillförlitlighet. De större enheterna är dock snabbare och jag ville ha något snabbare på alla sätt än den vanliga hårddisken som den ersatte. Den punkten kommer inte förrän $220 120GB-modellen, som har en sekventiell skrivhastighet snabbare än de terabyte-enheter jag använder för det mesta. En av 120 GB Intel 320-enheterna kom i mina glada händer tidigare i veckan.

Du kan hitta de fullständiga siffrorna från min första recension på pgsql-performance. Grundläggande prestandaparametrar är som förväntat:  253 MB/s läsningar, 147 MB/s skrivningar och respektibla 5 000 commits/sekund, allt matchar specifikationer och förväntningar. Det enda jag kan gnälla över är de slumpmässiga läs-/skrivresultaten. Trots påståenden om mycket högre siffror, får jag bara runt 3500 IOPS, översatt till 27 MB/s på en blandad arbetsbelastning. Det här är acceptabelt och slår alla vanliga enheter, men det är i underkant när SSD går. Kan inte klaga med tanke på priset – om jag vill ha snabbare kan jag alltid spendera 3X så mycket för OCZ Vertex 2 Pro – men det är något att vara medveten om. Det finns ett gäng skamlösa Intel-kärleksfulla recensioner som får det här fel; den enda recension jag har sett hittills som fångade samma problem och satte den i rätt perspektiv är den från Anand. Det visar 300GB 320-seriens hårddisk (som är till och med snabbare än en jag har) som levererar mitten till botten av packhastigheterna vid slumpmässigt arbete, vilket är där den realistiskt sett är. Det är inte oacceptabelt, det är bara viktigt att förstå uppsättningen av avvägningar som dessa enheter ger.

Om din data ryms i 120 GB är den här enheten ett mycket övertygande alternativ till den traditionella högpresterande databasinstallationen. Att skaffa en RAID-kontroller med batteristödd skrivcache och ett par enheter ger normalt upp till cirka $600, och du får bara rättvis slumpmässig I/O-prestanda från resultatet. Köp ett par av dessa enheter för cirka 450 $, använd programvara RAID för redundans, och du kommer att ligga långt före för det mesta. Se bara till att du följer goda SMART-övervakningsmetoder för dessa enheter. De varar inte för evigt, med skrivgränsen som en känd felpunkt även om inget går sönder innan dess. Det finns dock massor av förbrukningsvaror med den äldre tekniken även här, inklusive utbytesenheter, utbytesbatterier och ibland behöva ha extra kontroller som reservdelar för kritiska system. Det borde finnas en kostnadsbesparing med SSD nu så länge din data passar i den tillgängliga storleken. Och prestandan kommer att bli ett stort steg upp om du trycker på disken just nu. Det bästa sättet att öka prestandan är att lägga till mer RAM, men eftersom data så småningom måste gå till och från disken kanske det inte alltid är tillräckligt bra.

Intel, du får min officiella tummen upp här: du har äntligen gjort rätt, och jag rekommenderar dig gärna som leverantör nu när du har gjort det. Jag försöker fortfarande ta reda på vad jag ska göra med min nu snabbare än någonsin server hemma, och det är ett bra problem att ha.


  1. Hur man beställer efter datum i T-SQL

  2. Grundläggande SQL-frågor

  3. SQLite IN

  4. Spåra signaler med en signalbearbetningsdatamodell