*

Offline Jo

  • *****
  • 223
  • Geschlecht: Männlich
    • JoLichter.de
SSD Optimierung
« am: 21. Oktober 2011, 12:57:03 »
Update: 2016-Mai
seit MINT 18 und KDE neon setzte ich btrfs (better fs) als Dateisystem ein, damit ist das Journaling nicht so umfangreich


SSD (solid state drives) Optimierung unter LINUX
Eine SSD lässt sich ausgezeichnet unter aktuelle LINUX-Distributionen mit dem Dateisystem ext4 betreiben und macht euren PC Beine.

Quelle:wiki.ubuntuusers.de/SSD

WICHTIG:
  • Verwendet beim Betrieb von SSDs im Bios den AHCI Modus und nicht den IDE Modus!
  • Defragmentierung ist sinnlos und würde nur die Lebenszeit der SSD verringern!

HINWEIS:
Da ext3 und insbesondere ext4 ausgeklügelte Schreibstrategien und Datenträgeraufteilungen verwenden, um Fragmentierung zu vermeiden, sei hier nochmal darauf hingewiesen: Besonders auf LINUX-Desktop-Systemen ist Fragmentierung kein wirkliches Problem und eine Defragmentierung ist hier in der Regel nicht notwendig. Selbst bei älteren rotierenden Festplatten habe ich LINUX noch NIE defragmentiert.

TRIM ist ein Befehl zur Markierung ungenutzter oder ungültiger Datenblöcke auf Speichermedien zum Zweck der späteren Wiederbeschreibung und wird seit dem Kernel 2.6.33 untestützt. Der Trim-Befehl wird seit Ubuntu 14.04 (Mint 17) per Cron-Job einmal pro Woche automatisch gestartet. Allerdings nur auf SSDs von Samsung und Intel. Dafür ist das Script "/etc/cron.weekly/fstrim" verantwortlich.

Um zu überprüfen, ob eure SSD die TRIM-Funktion unterstützt, nutzt man den folgenden Befehl per Terminal:
sudo hdparm -I /dev/sda | grep -i TRIM Bei meiner Samsung 840 Pro sieht das dann so aus:

    *    Data Set Management TRIM supported (limit 8 blocks)
    *    Deterministic read ZEROs after TRIM

Ein Stern (*) vor der Ausgabe, zeigt dass die Option verfügbar ist.

Manuell trimmen per Terminal:
sudo fstrim -v /oder nur home
sudo fstrim -v /home


Update: Ein sofortiges Trim (Online Discard) über den Parameter "discard" in den Mount-Optionen der Datei "/etc/fstab" ist inzwischen nicht mehr empfehlenswert, da das bei einigen SSDs zu Leistungsnachteilen führt.

Nichtsdestotrotz sollte man die Datei fstab manuell per:
VISUAL=gedit kate sudoedit /etc/fstaboder wenn KDE:
VISUAL=kate sudoedit /etc/fstabanpassen, so dass sie dann wie folgt aussieht - wenn Dateisystem ext4, root auf sda1 und home auf sda2 liegt:
# root on /dev/sda1
UUID=EIGENE_FESTPLATTE / ext4 noatime,errors=remount-ro 0 1
# /home on /dev/sda2
UUID=EIGENE_FESTPLATTE /home ext4 noatime,errors=remount-ro 0 2
# swap on /dev/sda3
UUID=EIGENE_FESTPLATTE none swap sw 0 0
# dynamic RAMDisk
tmpfs /tmp tmpfs defaults,noatime,size=20%,mode=1777 0 0
tmpfs /var/tmp tmpfs defaults,noatime,size=5%,mode=1777 0 0
(noatime = Dateizugriffszeiten nicht speichern)

Die UUID einer Partition lässt sich mit blkid lesen, z.B. Festplatte 1, primäre Partition 1 (bei mir ist das root):
sudo blkid /dev/sda1und Festplatte 1, primäre Partition 2 (bei mir ist das home):
sudo blkid /dev/sda2und Festplatte 1, primäre Partition 3 (bei mir ist das swap):
sudo blkid /dev/sda3

Der LINUX-Kernel stellt  tmpfs bereit. Tmpfs unterscheidet sich von einer LINUX Ramdisk insofern, als Speicher dynamisch alloziiert wird und weniger genutzte Seiten in einen Swap-Bereich ausgelagert werden können.
(die /tmp Verzeichnisse benutzen ein Sticky Bit, daher das "mode=1777")

Die Logs lege ich nicht ins Ram, da sonst mein Apache den Start verweigert.
Grund: "/var/log/apache2" fehlt nach dem Startup. Also entweder das Startskript patchen oder es sein lassen. Davon abgesehen würde ich Logfiles ungern auf eine Ramdisk legen, da diese beim Neustart gelöscht werden.
Hinweis: Ab dem Kernel 2.6.35 werden /var/run und /var/lock automatisch ins RAM ausgelagert.

Wer eine swap und tmpfs benutzt kann nach einem Neustart die Einstellung per
df -hprüfen und die Neuen tmpfs Zeilen sehen, z.B.
tmpfs           794M  1,2M  792M   1% /tmp
tmpfs           199M     0  199M   0% /var/tmp


Hinweis: Wenn das Limit zu groß gewählt wird und nicht genug Swapspeicher vorhanden ist kommt es zu Problemen.




Firefox Cache ins RAM verlegen
(gilt auch für auch Firefox-ESR und Pale Moon)

Browser starten und in der Adressleiste about:config eingeben.

Dann irgendwo auf dem leeren Bildschirm im Browser, unter about:config,
einen Rechtsklick ausführen und auf "Neu" klicken. Hier einen neuen String mit dem Namen browser.cache.disk.parent_directory und dem Wert /tmp erstellen. Das muss für jeden User wiederholt werden.



.xsession-errors deaktivieren (wer das nicht braucht)
Wenn ihr MINT 17, 18 oder 19 benutzt, geht das ohne Skript per "MDM Login Manager", dort könnt ihr unter "Optionen", die Sitzungsausgabe (.xsession-errors) begrenzen und filtern (siehe Bild).

Wenn nicht, legt eine ausführbare del-xsession-errors.sh Datei mit folgenden Inhalt an:
#!/bin/sh
# löscht ~/.xsession-errors beim starten
rm -f ~/.xsession-errors
dann diese Datei in euren Autostart kopieren, bei KDEneon wäre das der Ordner: /home/USER/.config/autostart/
Unter Systemeinstellungen -> Starten und Beenden -> Autostart,  könnt ihr das Skript dann hinzufügen (siehe Bild).


PS:
Infos zu Windows 7 oder 8.x und SSD (habe das so in meiner VirtualBox mit Win 7 gemacht): Defragmentierung, Superfetch und Prefetch deaktivieren

« Letzte Änderung: 25. Dezember 2018, 13:40:41 von Jo »