Is defragmenteren van SSHD goed?

Pagina: 1
Acties:

  • Dutchredgaming
  • Registratie: September 2014
  • Laatst online: 21:25
Geachte mede-Tweakers,

Ik heb een SSHD op mijn laptop, maar ik wil graag defragmenteren.
Ik heb gehoord dat defragmenteren op SSD niet zo handig is.
Is defragmenteren op SSHD goed idee of een no go?

Review QNAP TS-230 NAS


Verwijderd

Hetzelfde verhaal ja; daarmee reset je in feite de SSD cache die je hebt opgebouwd. Als je zorgt dat je hardeschijf niet te vol raakt, hoef je in principe ook niet te defragmenteren. Maximaal 65% vol is dus het advies.

Verwijderd

Het HDD gedeelte van de schijf zal echter na verloop van tijd toch wel fragmenteren.... De SSD cache zal dat gedeeltelijk camoufleren wat betreft de meeste gebruikte files, maar niet voor de rest.

Je wilt het HDD dus wel degelijk af en toe defragmenteren. De vraag is dan of het SSD gedeelte aangetast word, qua write cycle, en qua cache status.


Ik kan me voorstellen dat een defrag herkend kan worden... Het betreft immers allemaal eenmalige schrijf acties. Als de cache dus simpelweg zorgt dat het zaken cached die meerdere malen per dag gebruikt worden, en niet eenmalig, dan zou de defrag geen grote invloed op de cache mogen hebben.


En zelfs als de cache zou worden aangetast, dan zou ik denken dan bijvoorbeeld halfjaarlijkse defrag toch wel degelijk nuttig zou zijn... Lang genoeg om de cache niet te veel aan te tasten, en toch genoeg om de ergste fragmentatie problemen te vermijden.

Verwijderd

Een defragmentatie zorgt voor random writes. De SSD kan geen defragmentatie 'detecteren' of iets dergelijks. Die ziet alleen I/O op LBA-niveau. Dus de vele random writes zullen de SSD cache volledig omspitten en dan is het effect van de SSD cache ook volledig teniet gedaan.

Defragmenteren is ook eigenlijk per definitie een slecht iets voor een hardeschijf, omdat de afstand tussen relevante bestanden groter zal worden. Het beste is om de hardeschijf nooit voller dan de helft te schrijven en nooit te defragmenteren. Voor een SSHD is dit nog veel meer het geval.

Maar het is ook niet zo dat je het absoluut niet moet doen. Alleen bedenk dan wel dat het SSD gedeelte van een SSHD je weinig voordeel zal bieden. Sowieso is een SSHD maar een slechte mengeling tussen SSD en HDD. Het beste heb je allebei zodat je random I/O op je SSD doet en sequential I/O op je hardeschijf.

Verwijderd

De schijf relatief leeg houden is fantastisch voor een zelf-defragmenterend file systeem als HPFS, maar bij NTFS heeft het weinig nut. Die vrije ruimte raak nog steeds totaal gefragmenteerd met kleine restjes. Je schrijft wat data, delete weer het grootste gedeelte, en dan blijven er kleine beetjes over die de vrije ruimte vervuilen. Het filesysteem kan weliswaar proberen files in één stuk te schrijven, maar dat zorgt er vanzelf voor dat hij steeds verder nog achter moet gaan om nog een aaneengesloten stuk te vinden. Uiteindelijk moet hij dan toch weer kleine gaten vullen. Niet voor niets dat Raxco Perfectdisk een free-space defragger had, die grote aaneengesloten stukken vrije ruimte creerde. Daardoor dat nieuwe bestanden minder snel fragmenteerde. Als je een test deed met Perfectdisk en Diskeeper dan zag je heel duidelijk dat dat heel veel nut had, ook wanneer de schijf relatief leeg is. .

Die SSHD zal onder Windows dus gewoon fragmenteren, en dat zal je op een gegeven moment gaan merken. En dat is er weinig keuze, dan te gaan defragmenteren. Defragmenteren is ook helemaal niet per definitie slecht voor de harde schijf... Maar je moet natuurlijk wel een beetje intelligent algorithme gebruiken. Aangezien de defragger wél op file niveau kan kijken, is het geen enkel problem om de relevante bestanden bij elkaar te houden.


Voor zover de SSD cache niet kan voorkomen dat een defragmentatie de cache omspit, zal je dus een compromise moeten vinden tussen cache in orde houden, en de harddisk gedefragmenteerd houden. Dus zeer zeker niet erg vaak defragmenteren... maar ieder half jaar wellicht.

Ik ben er niet van overtuigd dat defraggen per definitie de cache omspit... Het systeem zal hopelijk wel iets slimmer zijn dan simpelweg iedere I/O te cachen... Als de cache zelfs maar in de geringste mate het gebruik bijhoudt, dan zou de defrag geen enorme invloed mogen hebben, omdat de defrag slechts één toegang inhoud.
Als de cache wel alles cached, dan zou je weliswaar wél de cache volledig omspitten, maar de cache zal dan ook weer héél snel opgebouwd worden als je daarna weer normaal aan het werk gaat, aangezien dan iedere I/O automatisch de cache weer opbouwd. Eénmaal windows opstarten zou dan voldoende zijn om de cache op te bouwen....

Verwijderd

Verwijderd schreef op dinsdag 22 september 2015 @ 17:49:
De schijf relatief leeg houden is fantastisch voor een zelf-defragmenterend file systeem als HPFS, maar bij NTFS heeft het weinig nut.
Dat is gewoon niet waar. Bij het leeghouden van de hardeschijf zal er weinig tot nauwelijks fragmentatie plaatsvinden. Er zullen bij het verwijderen inderdaad lege plekjes overblijven, maar dat is helemaal niet zo ernstig. Omdat je heel veel vrije ruimte overhoudt, zullen grote bestanden contiguous dus aaneensluitend worden weggeschreven. Het wordt pas kritisch als je je filesystem meer dan 65%+ gevuld hebt en dan zijn er allerlei snippertjes ruimte waardoor nieuwe bestanden ver van de andere bestanden waar het binding mee heeft - dus bijvoorbeeld een groot spel dat je installeert dan wil je dat al die bestanden vlak bij elkaar staan. Als door de snippertjes aan vrije ruimte de bestanden van hot naar her worden geschreven, zal je dat flink gaan merken qua performance.

Ook als je defragmenteerd, dan heb je wel geen fragments meer. Dus geen bestanden die gesplit zijn deel 1 hier, deel 2 daar, deel 3 zus, deel4 zo. Maar dan heb je wel gezorgd dat de bestanden die bij elkaar horen, verder van elkaar af komen te staan. Sommige defragmentatieprogramma's proberen wel Windows bestanden bij elkaar te houden enzovoorts, maar ik heb weinig vertrouwen dat dit ook echt goed gaat. Het beste kun je dus nooit defragmenteren maar het filesystem enorm veel vrije ruimte geven. Maar in de praktijk vinden consumenten dit natuurlijk enorm zonde.
Die SSHD zal onder Windows dus gewoon fragmenteren, en dat zal je op een gegeven moment gaan merken.
Juist bij een SSHD merk je dat veel minder dan bij een HDD, omdat de fragments wel worden gecached, want dit betreft non-contiguous I/O en dat is juist de trigger voor de SDHD om die random reads op de SSD cache op te slaan.
Ik ben er niet van overtuigd dat defraggen per definitie de cache omspit... Het systeem zal hopelijk wel iets slimmer zijn dan simpelweg iedere I/O te cachen...
SSD caches zoals Intel SRT, ZFS L2ARC en SSHDs cachen ook niet iedere I/O - dan zou je cache zo groot moeten zijn als de hardeschijf zelf. Nee, ze cachen enkel non-contiguous I/O. Dat zijn random reads waarbij de volgende read actie niet aaneensluitend is. Dus LBA read 492, LBA read 82739, LBA read 24, LBA read 87498739879. Dat is non-contiguous I/O. En dat is de trigger om juist die I/O's op de SSD cache op te slaan.

Bij defragmenteren gebeurt ongeveer hetzelfde. Random reads en random writes. In feite vul je je SSD cache dan met nutteloze data die volkomen random is. Ook data die normaliter sequential worden ingelezen, zullen dan in je SSD cache terecht komen. Dat is niet de bedoeling.

Uiteindelijk zal na verloop van tijd de cache wel weer gevuld worden met relevante data, maar dat kan best even duren afhankelijk van de algoritmes van de SSHD. Het kan een simpele FIFO zijn (First-In-First-Out) of andere algoritmes dat weet ik verder niet.

Maar een SSHD heeft dus echt geen detailleerde kennis van het soort data - het heeft geen interne NTFS filesystem 'deep-filesystem-inspection' of iets dergelijks. Het is gewoon een vrij domme cache die kijkt of de I/O contiguous is of niet, en op basis daarvan oordeelt. Block storage is op LBA-niveau dus niet op filesystem-niveau.
Pagina: 1