Update: 2019-Märzseit 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 LINUXEine SSD lässt sich ausgezeichnet unter aktuelle LINUX-Distributionen mit dem Dateisystem ext4 oder btrfs betreiben und macht euren PC Beine.
Quelle:
wiki.ubuntuusers.de/SSDWICHTIG:
- 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!
- Bei NVMe SSD (z.B. Samsung 970 EVO/PRO) muss UEFI Modus geschaltet werden, Legacy BIOS Mode wird nicht unterstützt!
HINWEIS:
Da ext4 und btrfs 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 (nicht NVMe 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 sudoedit /etc/fstab
oder wenn KDE:
VISUAL=kate sudoedit /etc/fstab
anpassen, so dass sie dann z.B. 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)Beispiel NVMe SSD
- Dateisystem FAT32: /boot/efi/ auf nvme0n1p1 (100MB)
- Dateisystem btrfs: swap auf nvme0n1p2 (8GB wegen tmpfs), root auf auf nvme0n1p3 (30GB) und home auf nvme0n1p4 (restlichen Speicherplatz)
# /boot/efi was on /dev/nvme0n1p1 during installation
UUID=EIGENE_FESTPLATTE /boot/efi vfat umask=0077 0 1
# swap was on /dev/nvme0n1p2 during installation
UUID=EIGENE_FESTPLATTE none swap sw 0 0
# / was on /dev/nvme0n1p3 during installation
UUID=EIGENE_FESTPLATTE / btrfs defaults,subvol=@ 0 1
# /home was on /dev/nvme0n1p4 during installation
UUID=EIGENE_FESTPLATTE /home btrfs defaults,subvol=@home 0 2
# 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/sda1
und Festplatte 1, primäre Partition 2 (bei mir ist das home):
sudo blkid /dev/sda2
und Festplatte 1, primäre Partition 3 (bei mir ist das swap):
sudo blkid /dev/sda3
wenn NVMe SSD wie im oberen Beispiel:
sudo blkid /dev/nvme0n1p1
sudo blkid /dev/nvme0n1p2
sudo blkid /dev/nvme0n1p3
sudo blkid /dev/nvme0n1p4
Der LINUX-Kernel stellt
tmpfs bereit. Tmpfs unterscheidet sich von einer LINUX Ramdisk insofern, als Speicher dynamisch alloziert 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.Einstellung der swap und tmpfs nach Neustart prüfen, z.B.:
df -h
tmpfs 794M 1,2M 792M 1% /tmp
tmpfs 199M 0 199M 0% /var/tmpHinweis: ohne SWAP-Speicher könnte es trotz genug Arbeitsspeicher zu Problemen kommen
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.
SMART Werte von NVMe SSD auslesen (z.B. Samsung 970 PRO)sudo apt install nvme-cli
listen
sudo nvme list
Infos lesen
sudo nvme --smart-log /dev/nvme0n1
.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).
Oder noch einfacher das unveränderliche Attribut auf die Datei zu setzen, wodurch verhindert wird das ein Prozess etwas darauf schreibt:
rm -f ~/.xsession-errors
touch ~/.xsession-errors
sudo chattr +i ~/.xsession-errors
Die unveränderbar gemachte Datei wieder veränderbar machen (für den Fall das die Datei für eine Fehlersuche benötigt wird):
sudo chattr -i ~/.xsession-errors
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