Gå til innhold

SSD-tråden: info om og diskusjon rundt SSD


Anbefalte innlegg

Videoannonse
Annonse

Det kommer en sneakpeak her i spoiler:

 

Intro

Dette er den reviderte versjonen av denne posten, 14.mars.09

I denne posten skal jeg forklare både grunnleggende og utdypende om SSD. Jeg starter med grunnleggende, og går videre til mer og mer utdypende og tekniske ting. For at ikke denne posten skal ta 10 skjermlengder kommer jeg til å bruke spoiler-tags på alle emner, klikk på de for å se avsnittet. Jeg kommer til å bruke en del engelsk terminologi her, det er forklart i første spoileren, hvis jeg har glemt noe eller det er uklart, så si i fra i tråden så skal jeg fikse det.

I bunn av posten står det nyttige lenker og linker til benchmarks gjort av folk her på forumet som vil bli oppdater kontinuerlig.

 

Basics. Hva er SSD? + Terminologi

 

SSD står for Solid State Drive. De jeg skal snakke om i denne tråden er lagringsenheter som lagrer data på NAND flash minnebrikker (samme type som man finner i minnepenner) i stedet for magnetiske plater slik det er i harddisker, og kommer i 1,8", 2,5", eller 3,5" harddisk format (med mindre annet blir tydelig spesifisert). Dette fører til at SSDer ikke har noen bevegelige deler, og er derfor totalt stille, tåler veldig mye hardere behandling enn harddisker, har høyere toleranse for ekstreme temperaturer. En annen effekt av dette er også at de trenger mindre strøm og er kaldere (det finnes unntak her!) enn harddisker. De har også veldig mye raskere responstid enn harddisker, og har potensial til å gi mye høyere hastigheter enn harddisker kan klare. Som dere kanskje har hørt, så har SSD et begrenset antall ganger de kan bli skrevet til, jeg skal utdype dette mer om litt, men for de aller fleste av oss er ikke dette noe vi trenger å ta spesielt hensyn til med nyere SSDer. Derimot har de ingen begrensing på lesing, og siden det ikke er noen mekaniske deler involvert er de ikke utsatt for mekanisk slitasje over tid (slik som harddisker er).

Bit, Byte, kilobyte, osv: Dette er benevningen på lagringskapasitet. En bit er en 0 eller 1 i binær form. En byte er 8 bits, altså en tallrekke på 8 siffer bestående av 0 og 1. En kilobyte er 2^10 bytes = 1024 bytes. En megabyte = 2^20 bytes = 1024KB = 1048576 bytes. En gigabyte = 2^30 bytes = 1024MB = 1048576KB = 1073741824 bytes. På samme måte er også kilobit 1024 bits, osv. Normalt bruker man kun bits som benevning til overføringshastigheter, og det skrives da med liten b. Eks: en 20Mb/s overføringshastighet = 2,5MB/s. Det er viktig å holde tunga rett i munnen med stor og liten b.

NAND flash: Dette er en type minnebrikker der data ikke forsvinner når de ikke får strøm, i motsetning til RAM. Dette er den typen minnebrikker som finnes i minnepenner, MP3-spillere, og minnekort til digitale kamera og mobiltelefoner.

SLC og MLC: Dette er utgavene NAND flash (brikkene SSD bruker til lagring) består av. SLC = Singel-Level Cell. MLC = Multi-Level Cell. SLC lagrer 1 bit pr celle, mens MLC lagrer 2 bits per celle. De tekniske forskjellene på disse fører med seg en problemstilling som jeg skal ta opp senere.

Erase-block: Den minste enheten en SSD kan slette. Normalt 128KB-512KB.

Cluster: Den minste enheten en SSD kan skrive. Normalt 4kb. Når SSDen har slettet en erase-block kan den skrive den et cluster av gangen.

Data-blokker: Heretter referert til som blokker. Dette er pakker på 2^n Bytes fra 512Bytes og oppover. En SSD leser og skriver i slike blokker, men siden cluster-størrelsen begrenser den minste blokkstørrelsen som kan skrives blir da 4KB (eller gjeldende cluster-størrelse) det minste som kan skrives. Når du ber om å lese eller skrive en fil til/fra SSDen leser/skriver du clustrene denne filen

Kontroller: Dette er små prosessorer som kontrollerer diverse enheter i maskinen, i denne tråden vil vi bruker kontroller som den prosessoren som sitter inne i SSDen og styrer dens funksjoner.

HBA: Host Buss Adapter. Dette er plassen man kobler lagringsenhetene til maskinen (hovedkort eller raidkontroller). HBA som sitter på hovedkort er ofte: Intel ICHx®, AMD SBxxx, JMicron (OBS!), Marvell (OBS!), Nvidia/gigabyte (ofte omdøpt JMicron. OBS!) .OBS: JMicron og Marvell er ikke spesielt glad i SSD.

RAM: Random Access Memory, de fleste burde vite hva dette er. Dette er minnebrikker der data forsvinner når de ikke får strøm. RAM er normalt veldig mye raskere enn

Cache: Dette er RAM-brikker som brukes som et mellomlager for data som skal inn og ut av SSDen. Cache blir normalt brukt som en skrivebuffer for SSD, men kan også bli brukt til å lese filer til før de blir forespurt av maskinen så det tar kortere tid å levere de. Mengden cache og hvordan den blir brukt kan ha veldig mye å si for ytelsen.

Wear-leveling: Dette kommer jeg til å gå dypere i seinere. Dette er noe kontrolleren i SSDen gjør for å hindre at data blir skrevet på samme plassen hele tiden, da det kan føre til at enkelte områder blir slitt ut. Med wear-leveling sørger kontrolleren for at SSDen blir slitt gjevnt. Hvordan wear-leveling blir implementert kan få et kraftig utslag på ytelsen til SSDen.

Write amplification: Et fenomen som forekommer pga arkitekturen i SSD. Hvis ikke kontrolleren har teknologi som motvirker dette fenomenet så vil det føre til at det skrives mye mer data på SSDen enn det maskinen ber den om, og da vil den slites fortere. De tekniske detaljene kommer senere. Dette går under wear-leveling.

Write Attenuation: Dette er en måte kontrolleren i SSDen setter sammen mange små blokker som skal skrives til større blokker. Dette gjør så det tar kortere tid å skrive mange små blokker, og SSDen slites mindre. Dette går under wear-leveling.

Garbage collection: Når du sletter en fil fra en SSD blir ikke filen slettet med en gang, men den blir merket som "ugyldig data", og vil bli slettet senere (når SSDen sletter den erase-blocken den er i). Hvordan SSDen håndterer dette har stort utslag på ytelsen, spesielt når det er lite ledig plass, og vil påvirke hvor mye den slites. Dette går under wear-leveling

Grensesnitt: IDE/PATA, SATA, SCSI (utdatert grensesnitt som vi ikke kommer til å ta opp her), SAS, PCI/PCIe (for RAID delen og mer avanserte ting senere). IDE finnes i eldre maskiner, de fleste fra 2003-2004 og nyere har SATA. SAS brukes mest i servere eller high-end RAID kontrollere.

RAID: En måte å koble lagringsenheter sammen på så de vises som èn. Det finnes flere nivåer. Hva dette er og vitsen med det skal jeg gå i dybden i senere.

Båndbredde / throughput: Hvor stor overføringshastighet enheten klarer, måles i MB/s. Normalt er det snakk om sekvensiell les/skriv, altså lesing/skriving av større blokker (1MB+) som er plassert etter hverandre.

Random read/write: Lesing/skriving av mindre filer/blokker (under 1MB) som IKKE er plassert ved siden av hverandre.

IOPS: Input/Output Operations Per Second. Dette er hvor mange forespørsler enheten klarer å svare på per sekund. Normalt oppgir man det i en bestemt blokk-størrelse for enten les eller skriv, standard størrelse å oppgi IOPS i er 4KB.

Accesstime: Hvor lang tid det tar fra maskinen forespør en blokk til den mottar den fra lagringsenheten. Accesstime varierer fra enhet til enhet, og mellom les/skriv og forskjellige blokkstørrelser. Oppgis normalt i ms = millisekunder. 1/1000 sekund. Kan også oppgis i µs = mikrosekunder, eller ns = nanosekunder.

Benchmarks: Dette er tester for dataenheter, som f.eks. lagringsenheter. Når vi snakker om benchmarks i denne tråden gjelder det kun lagringsenheter. Normalt innebærer dette å teste maksimal båndbredde og/eller IOPS, men det kan også være grundigere analyse av hastigheter ved forskjellige datastørrelser og bruksmønster. Ved benchmarks blir det alltid oppgitt hva som blir testet, både testoppsett (maskindeler) og innstillingene i programmet som blir brukt. Benchmarks er en fin måte å teste ytelsen til lagringsenheter, og sier en del om hvordan de vil oppføre seg og yte i praktisk bruk. Det kommer mer dybde om benchmarks senere.

OS = OperativSystem. Dette er de forskjellige Windows, Mac, og linux-utgavene, eller evt. andre.

Partisjon: Dette er en del av (eller hele) lagringsenheten som blir brukt til lagring. Partisjoner blir tildelt bokstaver. F.eks. har man normalt windows på C og andre ting på D og E. En lagringsenhet kan deles opp i fler partisjoner. For harddisker blir en partisjon en bestemt del av platen, mens på SSD blir det ikke nødvendigvis slik, mer om det i SSD arkitektur (det avhenger helt av kontrolleren i SSDen).

Formatering: Jeg vil bare få klarert dette, det er mange som misbruker dette ordet grovt. Formatering er klargjøring av en partisjon, man lager da et filsystem på partisjonen, og noen av plassen vil forsvinne (et par prosent) til filtabellen. Noen filsystemer er FAT (utdatert), FAT32, NTFS, exFAT, ZFS, XFS, FFS (ja, jeg vet dere ler gamere ;)). I denne tråden vil vi bruke NTFS med mindre annet blir spesifisert.

Pagefile / sidevekslingsfil: Dette er en oppfinnelse fra Microsoft som begynner å utspille sin rolle for vanlige folk nå. Windows bruker en del av harddisken som virtuelt minne. Siden harddisken er VELDIG mye tregere enn RAM så fører dette til kraftig nedsatt ytelse for de tingene som havner i pagefile. Hvis man har 4GB RAM eller mer burde man deaktivere den.

Autodefrag: En plagsom liten sak i Windows Vista. Windows defragmenterer automatisk harddisken (eller SSDen) i bakgrunnen. Dette er en veldig negativ ting for SSD

Indeksering: En funksjon i Windows. En loggfil som holder styr på plasseringen på alle filene på en partisjon. Denne er normalt unødvendig for SSD og kan frigjøre ytelse når den blir deaktivert.

Superfetch: En funksjon i Windows Vista. Windows prøver å gjette hva du kommer til å spørre om fra lagringsenheter, og leser det til RAM. Denne funksjonen er dårlig optimalisert og fører til veldig mye lesing fra lagringsenheter. Deaktivering kan frigjøre en del ytelse, men KAN også føre til litt redusert åpningshastighet av programmer hvis man bruker harddisk og ikke SSD. Anbefalt å deaktivere når man har Vista på SSD (eksisterer ikke i XP, og er deaktivert som standard i windows 7).

 

 

EDIT: ser jeg må legge inn noen mer tydelige mellomrom der ja...

Endret av GullLars
Lenke til kommentar
Jeg regner nok med å gjøre en clean av disken før neste lanserte versjon av Win7 kommer (det var et program som skulle nullstille alle interne tabeller i diskene..), og droppe bench-marking av den deretter ;) Men jeg kommer til å kjøre en uviklings-database på maskinen så QD>4 regner jeg med at det blir noe i praksis (men ikke over så lang tid om gangen..).

 

Kilder?

 

Nå fant jeg en referanse ihvertfall.. (beskrevet i linken i posten til Betroz).

 

HDDErase. Da i versjon 3.3.. Om den vil kunne rette opp tabellene for Vertex vet jeg ikke.. Anvil refererer også til programmet her (Post #1160)

 

http://www.pcper.com/article.php?aid=669&a...xpert&pid=6

Lenke til kommentar
Da er Vertex'ene mine kommet :new_woot:

 

4xVertex 30GB RAID 0

 

Atto:

post-5273-1237061454_thumb.jpg

 

 

 

Er i grunnen ikke så veldig misfornøyd med disse tallene :mrgreen:

Hoooi, heftige tall. Hva slags offset satt du opp? Instalerte du OS eller image?

 

 

Brukte offset 1024 på første partisjonen som er på 20GB. Og da blir naturligvis offset på partisjon 2 automatisk lik 20G.

 

Brukte 256K striper da jeg tenkte at dette ville være best, i og med at offset skal være dividerbart med 4K (file allocation size). 1024K delt på 4K=256K. Noe som stemmer forbausende godt med stripene også ;)

 

Vet ikke om teorien min er helt riktig men tallene ser jo helt greie ut de da.

 

Edit:Installerte OS fra begynnelsen av.

Endret av Sveinl
Lenke til kommentar

Sveinl,

 

Det kan lønne seg å eksperimentere med stripe size da forskjellen kan være stor.

Eksempelvis fungerte 64KB og 256KB stripe size best på 2 x Intel X25-E.

128KB stripe size var et godt hakk ned i forhold til disse.

 

Jeg kjører nå 128KB på X25-M og foreløpig ser den ut til å være best.

 

Det er med andre ord stor variasjon på hva som funker.

Lenke til kommentar
Konge!

Men jeg KREVER flere tester NÅ! ;D

 

Hdtach, hdtune og kanskje noen Everest tester hadde vørt kjempekult å se. Du slipper å teste IOmeter, fordi det interesserer meg ikkje :)

 

Takk for testen! :w00t:

 

Da er XP på plass, fant ikke HDtach for Vista. Har kjørt HDTach og HDtune nå.

 

HDTune:

post-5273-1237120289_thumb.jpg

 

 

HDTach:

post-5273-1237120434_thumb.jpg

 

 

Ikke like imponerende som Atto kanskje? :!:

Lenke til kommentar

Sveinl,

 

Kunne du ha lastet ned HD Tune Pro (trial) og kjørt Random Access testen, den sier veldig mye.

 

Jeg sliter med mitt Adaptec kort og det ville være meget interessant å se om RR fungerer bedre.

(Adaptec sløver ned IOPS så det holder)

 

Hvis RR fungerer bra så kan jeg bestille ett basert på dine tester ;-)

 

edit:

+ Crystal Disk Mark med 500MB eller 1000MB lengde.

Endret av Anvil
Lenke til kommentar

Svenl, jeg har en kjapp tutorial på IOmeter som siste linken i signaturen min. Det er fine bilder og greier.

Bare et kjapt tips: på Test Setup så kan du trykke "allign to block" og ta 4KB i stedet for "allign to sector" som er standard. Det er noen som mener det gir bedre resultater.

Lenke til kommentar

Jeg er ferdig med installering av W7 + alle drivere, oppgraderinger og de programmene som jeg vil ha på SSD. Fjernet alt "crap", og har 15GB fri :=, og har lagt de store programmene på HDD.

 

Jeg har tenkt å lage en Image som jeg vil beholde på en HDD. Men ett par spørsmål:

Bør jeg å kjøre en defrag før jeg lager Image?

Hva slags fri program egner seg best for lage Image på SSD?

Er det noe annet jeg bør påta før jeg lager Image-filen?

Lenke til kommentar
Bra eller dårlig?

 

Meget bra vil jeg si ;-)

 

Highpoint RR er definitivt SSD "friendly".

 

Da er bare spørsmålet hvor jeg finner 3510 eller 3520 billigst.

 

Takk for at du kjørte denne, kunne du også kjørt CrystalDiskMark så hadde det vært komplett for min del? ;-)

Lenke til kommentar
Jeg har tenkt å lage en Image som jeg vil beholde på en HDD. Men ett par spørsmål:

Bør jeg å kjøre en defrag før jeg lager Image?

Hva slags fri program egner seg best for lage Image på SSD?

Er det noe annet jeg bør påta før jeg lager Image-filen?

 

Du skal ikke bruke defrag på SSD!

 

TrueImage er perfekt for image, en av de tidligere utgavene er blitt gratis. (www.acronis.com)

Lenke til kommentar
Bra eller dårlig?

 

Meget bra vil jeg si ;-)

 

Highpoint RR er definitivt SSD "friendly".

 

Da er bare spørsmålet hvor jeg finner 3510 eller 3520 billigst.

 

Takk for at du kjørte denne, kunne du også kjørt CrystalDiskMark så hadde det vært komplett for min del? ;-)

 

 

 

 

Jeg får varierende resultater på iops'ene. Tok selvsagt skjermdump av den som var best.

 

Her er en dårlig en:

post-5273-1237125114_thumb.jpg

 

Jeg vet ikke hvorfor det varierer, spørs om den jobbet med noe i bakgrunnen da denne ble kjørt?

 

 

Crystal diskmark (Edit: denne ble kjørt i går rett etter install av OS):

post-5273-1237125201_thumb.jpg

 

Har jo justert diverse ting, her er en ny:

post-5273-1237125897_thumb.jpg

Endret av Sveinl
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...