SSD in oude PC — speedtest met dd

p4-ht 10 jaarAls je een 10 jaar oude PC hebt, die je nog af en toe gebruikt om met Unix te experimenteren, is het dan de moeite waard om de harddisk te vervangen door een SSD? Ik heb het uitgeprobeerd met mijn Shuttle PC. Het commando dd gebruik ik om de snelheid te vergelijken van 4 generaties Intel processoren en 3 generaties Samsung SSD’s.

sata-I

Een reden waarom het misschien niet zou gaan werken, is de oude sata interface: ja, mijn 10 jaar oude Shuttle PC had al een sata aansluiting, maar die is van de eerste generatie. De snelheid daarvan is beperkt tot 150MB/s, terwijl alle SSD’s die je nu koopt bedoeld zijn voor 2e of 3e generatie sata, met een 2 of 4 keer zo hoge snelheid. De fabrikanten van SSD’s geven meestal niet aan dat ze compatible zijn met de 1e generatie sata. Zijn ze dat dan wel?

Mijn plan was daarom om gewoon in de Shuttle de harddisk te verwisselen voor de SSD uit de Eee box en te kijken of het werkt. Zo gezegd zo gedaan en wonder boven wonder: de Shuttle start gewoon op met de SSD uit de Asus! Ik hoef niets opnieuw te installeren.

Snelheid meten

Op basis van informatie die ik vond op internet (zie de links onderaan deze pagina) heb ik het onderstaande script (/usr/local/bin/speedtest.sh) in elkaar gefabriekt, zodat ik de snelheden van 4 computers kan vergelijken.

#!/bin/bash

bold=$(tput bold)
reset=$(tput sgr0)
diskcount=1024

header () { echo ${bold}$1${reset}; }

clear
header 'Snelheidstest'

echo
header 'CPU'
dd if=/dev/zero bs=1M count=1024 | md5sum >/dev/null

echo
header 'disk'
cd
dd bs=1M count=$diskcount if=/dev/zero of=test conv=fdatasync
rm ~/test

echo
header 'ramdisk'
cd /ramdisk
dd bs=1M count=$diskcount if=/dev/zero of=test conv=fdatasync
rm /ramdisk/test

Ik meet ook de snelheid van de ramdisk, omdat dit een benchmark is voor het maximaal haalbare voor de computer, verder meet ik ook de snelheid van alleen de CPU. De meetwaarden wisselen een beetje en hangen natuurlijk af van wat het systeem op het moment van de meting toevallig nog meer aan het doen is.

Uiteindelijk heb ik deze lijst van min of meer representatieve waarden opgesteld:

snelheid
Systeem CPU Disk/SSD ramdisk
90 Watt CPU uit 2005
Intel P4-HT
Samsung magnetische harddisk
306 MB/s 46,0 MB/s 631 MB/s
90 Watt CPU uit 2005
Intel P4-HT
Samsung 840 evo sata
306 MB/s 129 MB/s 643 MB/s
2½ Watt CPU uit 2009
Intel Atom N270
Samsung 840 evo sata
147,0 MB/s 125 MB/s 413 MB/s
15 Watt CPU uit 2014
Intel i5-4250U
Samsung 840 evo msata
451 MB/s 484 MB/s 3,1 GB/s
15 Watt CPU uit 2015
Intel i7-5500U
Samsung 850 evo msata
509 MB/s 481 MB/s 3,2 GB/s

Alle metingen zijn gedaan onder Ubuntu 14.04 LTS.
Alle systemen hebben 2GB geheugen of meer.

De dikgedrukte waarden geven de verbeterde snelheid door de SSD aan: bijna een factor 3! Het heeft dus inderdaad voordeel om een SSD te gaan gebruiken: niet alleen veel sneller, maar ook minder draaiende onderdelen en minder standby stroomverbruik, dus stiller en koeler.

Oude harddisks en bad sectors

In de Shuttle heb ik 2 verschillende harddisks gebruikt (eerst een WD IDE en daarna een Samsung sata) en allebei hebben ze nu bad sectors. Waarschijnlijk doordat de P4-HT erg veel hitte afgeeft (het is een 90 Watt processor) en dat is op zich nog niet erg, maar om het systeem zo stil mogelijk te maken had ik de koeling op een lage stand staan.

Populair geloof onder nerds is dat een moderne harddisk zelfstandig alle bad sectors verbergt. Dit blijkt niet waar te zijn! Op de Samsung harddisk verscheen namelijk een bad sector op een verkeerde plek, waardoor het updaten van Linux niet meer werkte en ik heb command-line toverspreuken moeten gebruiken om deze sector ook daadwerkelijk als bad gemarkeerd te krijgen. In smart kon ik zien dat de drive zelf maar een paar bad sectors kende — de veelgehoorde uitspraken dat je een harddisk moet afschrijven als bad sectors zichtbaar worden, maar ook dat Unix zelf niet overweg zou kunnen met bad sectors, zijn allebei onzin.

Tip voor harddiskgebruikers: doe af en toe een sudo cat /dev/zero >dummyfile tot de disk vol is, dan worden alle ongebruikte sectoren een keer getest.

Fakeraid

Het moederbord van de oude Shuttle PC heeft ICH6R raid ondersteuning. Met raid-0 (=striping) en twee SSD’s zou het mogelijk moeten zijn om, theoretisch, de doorvoersnelheid te verdubbelen door de twee sata interfaces van het systeem tegelijkertijd te gebruiken. Omdat de Intel processor al het raid-werk moet doen, noemt men dit in de Linux-wereld fake raid en over dat onderwerp (en het alternatief soft raid, dat binnen Linux gebeurt en waarvoor geen ondersteuning door het moederbord nodig is) is het een en ander te vinden op internet — zie de links onderaan deze blog voor meer informatie.

-update- Het blijkt dat de twee SATA poorten beperkt zijn tot 133MB/s samen, ze halen de SATA-1 snelheid dus niet eens en raid-0 heeft geen nut voor een hogere snelheid.

Nu kopen of wachten?

Nieuwe SSD’s worden natuurlijk steeds goedkoper, maar de snelheid van sata wordt een steeds grotere bottleneck, zelfs bij de nieuwste versie van sata. Je zou nu natuurlijk nog een of twee halveringen van de prijs kunnen afwachten, maar het is misschien verstandiger om voor je oude PC een SSD met sata interface te kopen voordat fabrikanten overgestapt zijn op een nieuwere interface en er misschien niet eens meer sata te koop is.

Firmware upgrade

Voor de Samsung 840 evo sata is vorig jaar nieuwe firmware uitgebracht en ik dacht dat dit een mooie gelegenheid was om die te installeren. Dat bleek geen gemakkelijke klus te zijn, want met alleen de image die op de website van Samsung staat lukt het niet. De truc is dat je eerst zelf met FreeDOS een bootbare DOS USB stick moet maken (leuke toepassing voor een oude, kleine stick). Aan die stick voeg je de bestanden toe die staan in de map samsung die staat in de image btdsk.img die staat in de map isolinux die staat in de image die je kunt downloaden van de website van Samsung. Als je daarna FreeDOS start, dan vind je de bestanden die je zelf hebt toegevoegd op de B: schijf. Het programma dat je moet draaien heet DSRD1_0.EXE. Hij zoekt zelf naar je SSD’s en controleert of ze een upgrade nodig hebben. Alles bij elkaar duurt dit ongeveer een minuutje en hij herschrijft geen bestanden. De firmware van de 840EVO is intussen blijkbaar bij versie D aangeland.

5 gedachtes over “SSD in oude PC — speedtest met dd

  1. Een andere SATA controller kopen zal helaas niet helpen om een snellere disk aan te kunnen sluiten, want de PCI-bus in zo’n oude PC heeft een maximale snelheid van maar 133MB/s. In dit systeem zitten de twee SATA aansluitingen en de PCI bus samen op de Southbridge en die heeft een maximale snelheid van 266MB/s in totaal.

    Dit betekent trouwens ook dat je geen PCI insteekkaart met extra RAM hoeft te kopen: swappen naar SSD zal gewoon net zo snel zijn.

  2. Een oude computer als deze heeft natuurlijk nog geen montageplaatsen voor een 2½” drive. Je zou een bracket kunnen kopen om de SSD te monteren op de plaats van de 3½” harddisk, maar een alternatief is om een bracket te kopen voor de plaats van de floppydrive (want die gebruik je waarschijnlijk toch niet): je kunt dan zelfs de SSD verwisselen via een luikje en je kunt nog een nieuwe 3½” sata harddisk plaatsen.

  3. Zijn er mogelijkheden om meer dan 2 SSD drives in te bouwen in de Shuttle?

    Brackets
    Er zijn brackets te koop waarmee je 2 SSD drives kunt monteren in één 3½” drivebay, 4 drives in een 5¼ drivebay, 2 drives in een PCI slot. Verder zijn er ook mensen die de SSD’s botweg met plakband aan elkaar plakken.

    PCI controller
    PCI kaarten met 2 of 4 extra SATA poorten zijn goedkoop (SIL3114 chipset). Dit zijn dan ook weer SATA-1 poorten en ze halen niet eens de volle snelheid van 1 poort omdat de PCI bus beperkt is tot 133MB/s. Ik heb nog niet uitgeprobeerd of je hiermee de totale doorvoersnelheid in de Shuttle kunt verhogen, maar in theorie zou dat kunnen.

    SATA Port Multiplier
    Voor zo’n 100 euro koop je een „Port multiplier” kaart die 1 SATA poort omzet naar 5 SATA poorten (JMB393 chip), die als RAID gebruikt kunnen worden en (als de host het ondersteunt) ook individueel aangestuurd kunnen worden. ICH9R zou dit ondersteunen, al werkt dit mogelijk alleen onder Linux en misschien niet als opstartschijf. Je kunt ook voor zo’n 20 euro de RAID-loze versie met JMB321 chip kopen. Je kunt meerdere SATA Port Multiplier kaartjes achter elkaar gebruiken, om zo tot maximaal 20 direct adresseerbare SATA poorten (per host SATA poort) te kunnen gebruiken.

    SATA RAID
    Er bestaan „RAID” kaartjes waarmee je 2 mSATA of 2 SATA drives kunt aansluiten op 1 SATA poort (driverless). Deze zijn lastig te vinden en zijn relatief duur (35 euro in China), ik weet niet of ze ook echt werken op de Shuttle. Over sommige RAID kaartjes lees ik dat ze, vanwege te oude firmware, geen RAID array van meer dan 2TB ondersteunen.

  4. Intussen heb ik 2 SSD’s aangesloten op de 2 SATA poorten van de Shuttle en ik kan melden dat de snelheid van de twee poorten blijkbaar niet onafhankelijk is: als je de speedtest tegelijk draait op de 2 SSD’s, dan heeft de oude drive op poort 1 een doorvoer van 64MB/s en de nieuwe drive op poort 2 69MB/s. Bij elkaar 133MB/s en dat is nauwelijks meer dan wat elke drive afzonderlijk haalt op een SATA-1 poort. Voor de snelheid heeft het dus geen nut (meer) om RAID-0 te gebruiken.

    -update 1-
    Ik heb een PCI controller kaartje met Sil3114 chipset geprobeerd en helaas leest dit kaartje de SATA drives op een lagere snelheid, is schrijven nog trager dan lezen en ondersteunt de chip/driver geen trim. Je krijgt wel 4 extra SATA poorten en de snelheid gaat niet af van de ingebouwde poorten.

    Ik kan ook nog de videokaart verwijderen, dan komt een standaard PCI-express slot vrij. Voordeel: eindelijk een SATA interface op de volle snelheid. Nadelen zijn er ook: dergelijke PCIe kaartjes met x1 of x2 snelheid (relatief traag) kosten in het algemeen al tussen de 40 en 60 euro (exclusief kosten) en je moet de ingebouwde video van de Shuttle gaan gebruiken (alleen analoge VGA aansluiting, kost minstens 1MB RAM geheugen en 2% processorsnelheid (of 1% als de screensaver actief is)).

    -update 2-
    Waarschijnlijk is PCIe gebruiken nauwelijks een echte oplossing, want volgens de informatie in dit artikel kunnen de meeste PCIe controllers niet eens de volle snelheid van 1 SATA-3 poort halen: de snelheid van 1e generatie PCIe is maar ongeveer 150MB/s per kanaal.

Vertel jouw mening

Vul je gegevens in of klik op een icoon om in te loggen.

WordPress.com logo

Je reageert onder je WordPress.com account. Log uit / Bijwerken )

Twitter-afbeelding

Je reageert onder je Twitter account. Log uit / Bijwerken )

Facebook foto

Je reageert onder je Facebook account. Log uit / Bijwerken )

Google+ photo

Je reageert onder je Google+ account. Log uit / Bijwerken )

Verbinden met %s