Considerazioni sull’utilizzo degli SSD

I drive a stato solido o SSD (Solid State Drive) sono memorie di massa che differiscono dai drive a disco fisso o HDD (Hard Disk Drive) per il fatto che fanno uso di memoria a stato solido (in particolare memoria flash) per l’archiviazione dei dati anziché utilizzare dischi magnetici e organi meccanici.

Questa differenza sostanziale tra gli SSD e gli HDD porta ad una serie di vantaggi e svantaggi di cui bisogna tenere conto nel momento dell’adozione della scelta del tipo di memoria di massa da utilizzare.

Vantaggi degli SSD

  • Rumorosità assente
  • Maggior resistenza agli urti e rischi di rottura minori
  • Minor consumo durante le operazioni di lettura e scrittura
  • Tempo di accesso ridotto (circa 50 volte inferiori a quelli di un disco magnetico)
  • Minor produzione di calore

Svantaggi degli SSD

  • Prezzo per GB maggiore di circa 10 volte (dal seguente 18 Month HDD & SSD Price Analysis of European E-Tailers risulta che il prezzo medio degli SSD è di 1.21 Euro/GB contro 0,122 Euro/GB per gli HDD). Va comunque considerato che nel 2012 il prezzo degli SSD è sceso in media circa del 24%, mentre a causa delle alluvioni in Thailandia il prezzo degli HHD è salito in media circa del 47%.
  • Una possibile minore durata in base al tipo di utilizzo, a causa del limite di riscritture delle memorie flash (al momento i produttori di SSD dichiarano un numero massimo di riscritture consecutive dello stesso bit che varia da 10.000 a 1.000.000 di cicli)

Prestazioni degli SSD

Gli SSD sono caratterizzati da una minore velocità in scrittura rispetto a quella in lettura e dalla variabilità della velocità in scrittura in dipendenza alla dimensione dei file che si vogliono scrivere.

Questo dipende dal fatto che in genere i File System dei Sistemi Operativi usano cluster della dimensione di 4 KB, mentre negli SSD la dimensione dei blocchi è molto superiore (ad esempio 4 MB). Ciò implica che per scrivere una cella occorre leggere prima l’intero blocco e aggiornare la cella desiderata lasciando inalterate le altre e infine salvare il blocco. In altre parole possiamo dire che in generale la velocità di scrittura è minore se scrivono file di piccole dimensioni.

Un modo per migliorare le prestazioni degli SSD è quello di far si che il controller sia informato sui blocchi che si sono liberati (ovvero quelli in cui nessuna cella è utilizzata) a seguito dell’eliminazione o modifica di un file. Infatti la scrittura sarà ovviamente più rapida su blocchi interamente liberi in quanto non è necessario leggerli preventivamente inoltre in tal modo i cicli di scrittura sono distribuiti in modo più uniforme. A tal scopo i sistemi operativi di ultima generazione mettono a disposizione il comando TRIM. Mediante il comando TRIM il sistema operativo comunica al controller dell’SSD quali blocchi sono inutilizzati dopo l’eliminazione di un file, il sistema operativo infatti si limita a contrassegnare i blocchi eliminati come non in uso, mentre il controller provvederà alla cancellazione.

Un’altra cosa da tenere presente è che la frammentazione di un disco SSD non influisce sulle sue prestazioni, infatti il tempo d’accesso a qualunque cella è identico, per questa ragione i moderni sistemi operativi disattivano la deframmentazione del disco, in quanto risulta inutile e dispendiosa in termini di cicli di scrittura.

Sistemi operativi Windows e SSD

Già a partire da Windows 7 Windows Server 2008 R2 erano state introdotte una serie di funzionalità nel sistema operativo al fine di operare al meglio se il sistema operativo veniva installato su un SSD. Infatti come si poteva leggere nel seguente Support and Q&A for Solid-State Drives erano state apportate le seguenti ottimizzazioni:

  • Supporto al TRIM
  • Disabilitazione della deframmentazione sui drive sistema SSD
  • Disabilitazione di Superfetch, ReadyBoost, ReadyDrive, boot prefetching e application launch prefetching sui drive sistema SSD
  • Creazione delle partizioni in modo da essere allineate con l’SSD per avere le performance migliori (a riguardo si veda Disk Alignment on Windows 7 for normal disks and SSDs)

Per quanto riguarda il page file (pagefile.sys) dal momento che in generale su di esso vengono eseguite piccole letture casuale e grandi scritture sequenziali l’SSD risulta particolarmente adatto ad ospitarlo garantendo quindi performance superiori ad un HDD.

Non ci sono invece differenze sostanziali di performance nel memorizzare il file hiberfile.sys (utilizzato per l’ibernazione e la sospensione) su un SSD rispetto a memorizzarlo su un HDD.

Nel seguente Solid State Drive Deployment vengono date alcune indicazioni per il deploy di Windows 8 su SSD, in particolare è consigliabile eseguire WinSAT.exe formal per consentire al sistema operativo di eseguire ottimizzazioni finalizzate all’utilizzo degli SSD:

“When you install Windows 8 to a SSD, we recommend that you run WinSAT.exe formal to help optimize Windows for use on SSD. This reduces the number of write operations that Windows makes to the SSD, and makes other optimizations. Run WinSAT.exe formal during audit mode while you are preparing your Windows deployment. Optionally, you can run WinSAT.exe formal after OOBE completes.

If you run WinSAT.exe formal in audit mode and then run sysprep /generalize, the WinSAT result files will be deleted. We recommend that you run WinSAT formal on the factory floor for each PC that you intend to ship to a customer.”

Conclusioni

  1. A partire da Windows 7 è possibile installare in modo ottimizzato il sistema operativo su un SSD e mantenere su esso anche il page file.
  2. La vita di un SSD è legata al numero di cicli di scrittura in quest’ottica valgono le seguenti:
    • La deframmentazione di un SSD risulta inutile perché il tempo di accesso non è più legato alla posizione fisica del dato, anzi dannosa perché rappresenta uno speco di cicli di scrittura
    • Per ridurre il numero di cicli di scrittura potrebbe essere utile spostare su un HDD i file di piccole dimensione scritti frequentemente come ad esempio i file temporanei del browser, la cache dei programmi di posta e il file hiberfile.sys che non trae grandi vantaggi dall’essere posizionato su un SSD. Inoltre nel caso in cui il pagefile.sys non sia utilizzato di frequente si potrebbe pensare di spostare anche quest’ultimo su un HDD in quanto visto lo scarso utilizzo in generale le performance non risentirebbero mentre si andrebbe a risparmiare cicli di scrittura.
  3. In base a quanto detto precedentemente gli SSD risultato indicati in tutti quegli scenari in cui in cui vi sono letture frequenti e scritture di grandi file in modo sequenziale, come ad esempio:
    • Memorizzazione di Parent VHD in scenari VDI
    • Memorizzazione di database dedicati al Data warehouse (OLAP) o database OLTP in cui la tipicità dei dati gestiti porta a letture frequenti e scritture massive
    • Memorizzazione dei VHD del sistema operativo delle VM dei sistemi server

Approfondimenti

Per ulteriori approfondimenti sulle performance e sulle tecnologie che sono state sviluppate per utilizzare al meglio gli SSD si vedano: