Ich habe gerade auf eine SSD aufgerüstet. Die Leistung war großartig.
Wenn ich jedoch nach jedem Neustart ein fstrim für die Partitionen ausführe, wird der gesamte freie Speicherplatz gekürzt. Und soweit ich weiß, wird beim Kürzen der gesamte freie Speicherplatz, der verfügbar ist, geschrieben. Ich bin mir nicht sicher, ob das relevant ist, aber ich verwende die vollständige Festplattenverschlüsselung (einschließlich /boot).
Da die Lebensdauer der SSD durch häufiges Schreiben drastisch verkürzt werden kann, bereitet mir diese Kürzung Sorgen.
Hier sind die Protokolle, die ich bei jedem Schnitt führe:
Jul 30 13:46:00 /: 478.6 MiB (501862400 bytes) trimmed
Jul 31 13:22:26 /: 347.8 GiB (373409230848 bytes) trimmed
Jul 31 13:25:32 /: 194.3 MiB (203710464 bytes) trimmed
Jul 31 13:25:40 /: 19.2 MiB (20111360 bytes) trimmed
Aug 02 14:08:06 /: 345.9 GiB (371398463488 bytes) trimmed
Aug 02 22:21:36 /: 56.9 GiB (61047971840 bytes) trimmed
Aug 02 22:31:27 /: 347.7 MiB (364560384 bytes) trimmed
Aug 02 22:31:43 /: 127 MiB (133144576 bytes) trimmed
Aug 02 22:33:01 /: 243 MiB (254767104 bytes) trimmed
Aug 03 06:58:47 /: 1 GiB (1080602624 bytes) trimmed
Aug 03 10:00:02 /: 2.4 GiB (2526216192 bytes) trimmed
Aug 03 11:42:14 /: 341 GiB (366146318336 bytes) trimmed
Aug 03 16:00:01 /: 0 B (0 bytes) trimmed
Aug 03 16:33:53 /: 0 B (0 bytes) trimmed
Aug 03 16:48:43 /: 341 GiB (366074740736 bytes) trimmed
Aug 03 16:50:13 /: 1.2 GiB (1297809408 bytes) trimmed
Aug 03 16:53:31 /: 341 GiB (366074695680 bytes) trimmed
Aug 03 17:07:55 /: 340.9 GiB (366066126848 bytes) trimmed
Aug 05 22:00:13 /: 341 GiB (366073069568 bytes) trimmed
Aug 05 22:07:22 /: 1.2 GiB (1261793280 bytes) trimmed
Aug 06 07:41:50 /: 1.4 GiB (1522991104 bytes) trimmed
Aug 06 10:00:11 /: 341 GiB (366068740096 bytes) trimmed
Wie Sie sehen, beträgt die Verkürzung nach dem Einschalten des Computers ca. 340 GiB, während die Verkürzung bei normaler Nutzung nur etwa 1 GiB beträgt.
Muss ich mir Sorgen machen, dass meine SSD dadurch verschleißt? Sollte ich sie nicht kürzen?
Antwort1
Es gibt ein Missverständnis. Trimmen verursacht keine zusätzlichen Schreibvorgänge, esnimmt abihnen.
Eine SSD, oder besser gesagt ihr NAND, hat zwei Begriffe von "Blöcken", von denen einer eigentlich heißtBlock(normalerweise etwas zwischen 128k und 512k), und der andere, der viel näher an dem ist, was Sie meinen, wenn Sie von "Block" in Bezug auf Ihr Dateisystem sprechen, heißtSeite(normalerweise etwas um 4k). Sie könnenschreibenSie können eine ganze Seite auf einmal auslesen, genau wie auf einer alten Festplatte, kein Problem. Alles funktioniert wie erwartet.
Sie können jedoch nichtüberschreibeneine Seite, sie sind einmal beschreibbar. Sie können danach nurlöschenes, wodurch es wieder einmal beschreibbar wird. Dies zählt zur Lebensdauer des NAND. Das Problem ist nur... in Wirklichkeitkann nichtSeiten löschen. Sie können nurBlöcke(d. h. Cluster von jeweils 32–64 Seiten).
Dies bedeutet, dass der Controller beim Überschreiben einer Seite (eines „Blocks“ im Sinne des Dateisystems) Folgendes tun muss:
- den kompletten Block einlesen
- wenn ein "jungfräulicher" oder bereits gelöschter Block existiert, verwenden Sie diesen
- ansonstenklarder gleiche Block
- den kompletten Block ausschreiben und den Inhalt der überschriebenen Seite entsprechend ändern
- etwas nicht näher bezeichnetes „Zaubern“ anwenden, damit die Löschzyklen einigermaßen gleichmäßig über alle Blöcke verteilt werden und ein vorzeitiger Tod verhindert wird
Das ist etwas vereinfacht, aber das Prinzip ist so.schlauDer Controller macht möglicherweise etwas anderes (z. B. Seiten logisch neu zuordnen, alle Seiten füllen, bis keine mehr übrig sind, und sich irgendwie „merken“, welche gut und welche veraltet sind usw. usw.), aber im Prinzip ist der Arbeitsablauf wie oben beschrieben.
Dies ist insofern ein Problem, als kleine Schreibvorgänge häufig vorkommen und jeder Block auf Ihrer Festplatte schon mindestens einmal beschrieben wurde. Was kann der Controller nun tun? Nicht viel. Er weiß nicht wirklich, was das Dateisystem tut oder was erwartet wird, also muss er mit der konservativsten Annahme arbeiten. Das heißt, alles, was einmal geschrieben wurde, muss erhalten bleiben.
TRIM löst dieses Problem. Es teilt dem Controller mit, dass ein so und so großer Bereichwird nicht genutzt, also kann der Controller sie auch verwerfen. Es wird nichts geschrieben. Wenn überhaupt, werden nur Blöcke gelöscht (allerdings nur einmal, nicht jedes Mal).
Da Sie dem Controller mitgeteilt haben, dass Sie diese Daten nicht verwenden, kann er es ohne Schaden riskieren, sie wegzuwerfen. Jetzt sind plötzlich wieder beschreibbare Blöcke verfügbar, ohne dass Daten kopiert und Blöcke wiederholt gelöscht werden müssen. Das macht nicht nur SchreibvorgängeSchnellersondern verringert auch die Anzahl der erforderlichen Löschvorgänge.
Antwort2
fstrim
scheint freizugebenallefreier Speicherplatz einer Partition, nicht nur der seit dem letzten Aufruf von freigegebene Speicherplatz fstrim
. Siehe auchdieser Beitrag.