Quantcast
Channel: thomas-leister.de
Viewing all articles
Browse latest Browse all 452

Arch Linux: Extrem niedrige Schreibrate auf verschlüsselte SSD

$
0
0

In den letzten Monaten ist mir aufgefallen, dass die Leistung meines Ultrabook abzunehmen scheint. Vorher war es kein Problem, 1 oder 2 virtuelle Maschinen nebenher laufen zu lassen – inzwischen war die Leistung aber so gering, dass es noch nicht einmal mehr möglich war, eine einzige VM laufen zu lassen und flüssig weiter zu arbeiten.

Natürlich habe ich die Systemauslastung beobachtet – mir ist aber nichts besonderes aufgefallen. Alle Werte lagen im mittleren Bereich mit Luft nach oben. Weder CPU noch RAM waren voll ausgelastet. Und trotzdem konnte man nicht mehr vernünftig arbeiten, wenn eine virtuelle Maschine in Hintergrund lief.

Heute morgen ist mir die Idee gekommen, doch mal die SSD genauer unter die Lupe zu nehmen. Wenn die schlechte Performance schon nicht an CPU und RAM lag, musste doch mit dem Speicher etwas nicht in Ordnung sein. Die Leserate war mit etwa 450 MB/s SSD-typisch hoch:

hdparm -t --direct /dev/sda

Die Messung der Schreibrate auf die System-SSD zeigt aber, warum mein System bei etwas höherer Beanspruchung so sehr in die Knie ging:

sync;time bash -c "(dd if=/dev/zero of=bf bs=8k count=500000; sync)"

Es wurden nur 16 MB/s beim Schreiben auf die verschlüsselte SSD gemessen. Das erklärte so manches. Aber wie war es möglich, dass die SSD auf einmal so langsam war?

Meine einzige Erklärung dafür war, dass die TRIM Funktion für SSDs nicht richtig eingerichtet war. Doch ein Blick in die /etc/fstab offenbarte, dass dort für die Systempartition bereits der „discard” Parameter für TRIM gesetzt war. Was nun? Ich versuchte, einen manuellen TRIM auszuführen:

fstrim -v /

… was aber fehl schlug mit „discard operation not supported”. Da war klar: Aus irgendeinem Grund konnte TRIM nicht funktionieren. Ich hatte die SSD-Festplattenverschlüsselung im Verdacht, die ich mit dm-crypt und LUKS realisiere. Ein Blick in das Arch Wiki zum Thema dm-crypt zeigte, dass es bei einer verschlüsselten SSD nicht ausreichte, in der fstab „discard” zu setzen. Neben dieser Maßnahme muss nämlich ein zusätzlicher Bootparameter angegeben werden. Ich nutze GRUB, also habe ich die Datei „/etc/default/grub” bearbeitet und den „cryptdevice” Teil um ein „allow-discards” erweitert:

GRUB_CMDLINE_LINUX_DEFAULT="cryptdevice=/dev/sda4:main:allow-discards lang=de locale=de_DE.UTF-8 add_efi_memmap"

Danach wurde die neue GRUB Konfiguration geschrieben:

grub-mkconfig -o /boot/grub/grub.cfg

… und das Ultrabook neu gestartet.

Jetzt funktionierte auch der fstrim-Befehl und 50 GB Daten wurden in wenigen Sekunden auf der SSD optimiert:

fstrim

fstrim

Eine weitere Messung der Schreibrate auf SSD zeigte, dass die Leistung nun deutlich angestiegen war: 133 MB/s statt 16 MB/s. Nun kann ich auch wieder mehrere virtuelle Maschinen mit KVM nebenher laufen lassen, ohne dass der Bildschirm ständig einfriert.


Viewing all articles
Browse latest Browse all 452