[[Vorlage(Getestet, general )]] {{{#!vorlage Wissen [:Editor: Einen Editor öffnen] [:fstab: Bearbeiten von /etc/fstab] [:Terminal: Ein Terminal öffnen] [:sudo: Root-Rechte] }}} [[Inhaltsverzeichnis(2)]] {{{#!vorlage hinweis Dieser Artikel ist Teil der Artikelserie [:SSD:], welche das Thema [wikipedia:Solid_State_Drive:Solid State Drives] behandelt. Dieser Artikel geht in allen Beschreibungen davon aus, dass die SSD als '''/dev/sda''' im System eingebunden ist. Die Befehle müssen bei davon abweichenden Systemen daher gegebenenfalls angepasst werden. }}} [[Bild(Wiki/Icons/SSD.png, 64, align=left)]] Jedes Linux-System und dessen Anwendungen benötigt Speicherplatz für [wikipedia:Temporäre_Datei:temporäre Daten]. Temporäre Daten brauchen einen Systemabschluss („Ausschalten/Neustart“) nicht zu überstehen. Sie sind somit nicht [wikipedia:Persistenz_(Informatik):persistent]. Für die Zwischenspeicherung temporärer Daten kann Linux wahlweise [wikipedia:Random-Access_Memory:RAM] oder Festplatten nutzen. Aus Geschwindigkeitsgründen (primär) und aus Haltbarkeitsgründen (sekundär) optimiert man die Schreibzugriffe auf die SSD. Programme nutzen dann RAM und/oder andere Festplatten des Systems. Dazu muss der Rechner einerseits über ausreichend Speicher in Form von RAM (empfehlenswert sind vier Gigabyte oder mehr) oder aber über weitere Festplatten verfügen. Dies bringt zwei Vorteile beim Einsatz einer SSD: * Der Zugriff auf Daten im RAM ist um ein Vielfaches schneller als der Zugriff auf eine SSD * Es werden viele Schreibvorgänge von meist nur kleinen Dateien auf die SSD vermieden Beispielsweise werden in der [:Verzeichnisstruktur:Linux-Verzeichnisstruktur] temporäre Dateien in '''/tmp''' und in einigen Unterverzeichnissen von '''/var''' (z.B. '''/var/run''', '''/var/lock''') gespeichert. Die dort abgelegten Daten kann man bei Bedarf in andere Dateisysteme [:RAM-Disk_erstellen:verlagern], die ggf. (nur) im schnellen RAM liegen und dafür aber mit dem Herunterfahren des Systems verloren gehen. Darüber hinaus benutzen einige Anwendungen einen eigenen [wikipedia:Cache:] (siehe [#Firefox Firefox] und [#Chromium Chromium]), der sich ebenfalls verlagern lässt. {{{#!vorlage Hinweis Die Linux-typische [:Swap:]-Partition soll an dieser Stelle bewusst ausgeklammert werden. Sobald ein System bei normalem Betrieb öfter auslagert, sollte man zunächst in ausreichend RAM investieren, bevor man an eine SSD denkt. }}} = Verlagerung von /tmp = Ob das Verlagern des '''/tmp''' Verzeichnisses ins RAM sinnvoll ist, muss im Einzelfall entschieden werden (siehe [:SSD/Begriffsdefinitionen#Auslagerungsspeicher:Auslagerungsspeicher]). Sofern sich neben der SSD auch eine Festplatte im System befindet, kann '''/tmp''' wegen der vielen Schreibzugriffe darauf jedoch problemlos auf die Festplatte ausgelagert werden. {{{#!vorlage Hinweis Verlagert man Dateien und Ordner von '''/tmp''' ins RAM, so sollte man sich darüber im Klaren sein, dass diese nach einem Neustart nicht mehr verfügbar sind. Auch sollte man die Auslastung des RAM im Auge behalten, so dass dieses nicht überläuft. Dies trifft vor allem bei [:Brennprogramme:Brennprogrammen] zu, die teilweise sehr hohe Datenmengen in /tmp zwischenspeichern. Des weiteren können in Mehrbenutzer-Systemen andere eingeloggte Anwender Zugriff auf eigene Dateien und Ordner in '''/tmp''' erhalten. }}} Mit dem nachfolgenden Befehl in einem Editor [1] kreiert man eine [wikipedia:RAM-Disk:] in [:fstab:/etc/fstab] [2] , die den Ordner [:Verzeichnisstruktur#tmp:/tmp] aufnimmt: {{{ tmpfs /tmp tmpfs nosuid 0 0 }}} Dadurch wird eine dynamische RAM-Disk namens '''tmpfs''' für den Ordner '''/tmp''' erstellt und diesem standardmäßig maximal die Hälfte des RAM-Speichers zur Verfügung gestellt. ''"Dynamische RAM-Disk"'' bedeutet, dass stets nur der aktuell darin belegte Platz vom verfügbaren RAM abgezwackt wird. Die Änderungen werden nach einem Neustart des Systems oder per folgendem Befehl im Terminal [3] mit Root-Rechten [4] aktiviert: {{{#!vorlage befehl sudo mount -a }}} == RAM Größenbegrenzung für /tmp anpassen == Standardmäßig richtet das System eine RAM-Disk so ein, dass maximal die Hälfte des RAM belegt werden kann. Möchte man dieses Limit z.B. erhöhen um die Auslagerung der Daten vom RAM auf die Swap-Bereich zu vermeiden, so kann man dies auf zweierlei Art tun: Per absolutem oder prozentualem Wert. Die Werte werden wie folgt in '''/etc/fstab''' [2] konfiguriert: * absoluter Wert: {{{ tmpfs /tmp tmpfs nosuid,size=2G 0 0 }}} * relativer Wert: {{{ tmpfs /tmp tmpfs nosuid,size=15% 0 0 }}} Im ersten Fall wird der fixe absolute Wert zwei [wikipedia:Byte:Gigabyte] zugewiesen. An dieser Stelle kann man auch 512M für 512 Megabyte setzen. Im zweiten Fall wird der fixe relative Wert 15% des RAM genutzt. Man kann ebenso auch jede andere Zahl eintragen wie z. B. 45%. Als grober Richtwert hat sich 15% bei vier Gigabyte RAM (entspricht 600 Megabyte) als ausreichend erwiesen. Dies ist natürlich subjektiv und vom Einsatzzweck abhängig. = Verlagerung von /var = Ubuntu verlagert bereits standardmäßig '''/var/run''' und '''/var/lock'''. Eine Verlagerung weiterer Unterverzeichnisse soll hier nicht empfohlen werden. Die Verlagerung von '''/var/log''' z.B. würde dazu führen, dass bei jedem Neustart alle Logdateien des Systems verloren gehen. = Status = Hat man sich dazu entschieden auszulagern, kann man das Ergebnis wie folgt überprüfen. Dies ist ebenfalls sinnvoll, um die gemachten Einstellungen gegebenenfalls nach oben oder unten zu korrigieren. Mit dem Terminal-Befehl [3] {{{#!vorlage befehl df -h }}} kann man nachschauen, ob die RAM-Disk und/oder der Shared-Memory-Bereich korrekt angelegt wurde. Die Ausgabe sieht in etwa wie folgt aus: {{{ tmpfs 2,0G 28M 2,0G 1% /tmp shm 4,0G 3,9M 4,0G 0% /dev/shm none 3,9G 84K 3,9G 1% /var/run none 3,9G 0 3,9G 0% /var/lock }}} Die Anzeige im Einzelnen: * Die RAM-Disk '''tmpfs''' nimmt dabei maximal 2,0 Gigabyte an Platz auf dem 8 Gigabyte umfassenden RAM ein. In Gebrauch (und tatsächlich im RAM belegt) sind davon 28 Megabyte, so dass aufgerundet 2,0 Gigabyte verfügbar bleiben. 1% der RAM-Disk ist belegt und eingebunden ist sie als '''/tmp'''. * Der Shared-Memory-Bereich '''shm''' ist insgesamt 4,0 Gigabyte groß. 3,9 MB sind zur Zeit in Gebrauch, so dass 4,0 Gigabyte verfügbar bleiben. 1% des Bereichs sind belegt und eingebunden ist der Bereich als '''/dev/shm'''. * Die dritte und vierte Zeile zeigen '''/var/run''', '''/var/lock''', die bereits standardmäßig in '''tmpfs''' gespeichert werden. = Verlagerung des Browser-Caches = Weil Internet-Browser häufig und viel in ihren Zwischenspeicher (Cache) schreiben, kann dieser in eine [:RAM-Disk_erstellen:RAM-Disk] verlagert werden. Mit einer Verlagerung geht jedoch mit jedem Neustart der gesamte Cache verloren. Dies kann mit dem [github:graysky2/profile-sync-daemon:profile-sync-daemon] {en}, der den Cache beim Neustart automatisch auf/von Festplatte speichert/lädt, vermieden werden. Eine Anleitung zur Einrichtung findet man auf [uf_thread:1921800: ubuntuforums.org] {en}. == Firefox == Wie man den Browser-Cache von Firefox auslagert, steht im Artikel [:Firefox/Tipps#Verlagerung-des-Browser-Caches:]. == Chromium == Wie man den Browser-Cache von Chromium bzw. Google Chrome auslagert, steht im Artikel [:Chromium#Verlagerung-des-Browser-Caches:]. = Links = * [http://www.kernel.org/doc/Documentation/filesystems/tmpfs.txt kernel.org: Kerneldokumentation zu tmpfs] {en} * [http://www.thegeekstuff.com/2008/11/overview-of-ramfs-and-tmpfs-on-linux/ thegeekstuff.com: Overview of RAMFS and TMPFS on Linux] {en} * [https://wiki.archlinux.org/index.php//dev/shm wiki.archlinux.org: Informationen zu Shared Memory (shm)] {en} * [http://www.pathname.com/fhs/pub/fhs-2.3.html#THEVARHIERARCHY pathname.com: Filesystem Hierarchy Standard – The /var Hierarchy] {en} * [http://wiki.debian.org/SSD%20Installation debian.org: SSD Installation / Migration] {en} #tag: Hardware, System, Installation, Shell