Update: 2019-März
bei SSD setzte ich btrfs (https://wiki.ubuntuusers.de/Installieren_auf_Btrfs-Dateisystem/) (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/SSD (https://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
- 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 (https://de.wikipedia.org/wiki/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 (https://wiki.ubuntuusers.de/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,commit=30,errors=remount-ro 0 1
# /home on /dev/sda2
UUID=EIGENE_FESTPLATTE /home ext4 noatime,commit=30,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=0777 0 0
(noatime -> Dateizugriffszeiten nicht speichern | commit=30 -> Dateisystemtabelle wird nur alle 30 Sekunden auf Festplatte geschrieben)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=0777 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 (https://de.wikipedia.org/wiki/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/tmp
Hinweis: 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 (https://www.pc-magazin.de/ratgeber/windows-8-1-ssd-einstellungen-optimal-windows-7-1991009.html)