Wie optimiere ich das Betriebssystem für SSDs?

143

Welche Schritte sollten vor / während / nach der Installation von Ubuntu auf einem Solid State Drive unternommen werden, um die Leistung zu optimieren und maximale Haltbarkeit des Laufwerks zu gewährleisten?

    
Lars Haugseth 06.08.2010, 16:03

13 Antworten

106

Ich habe erfolgreich mehrere verschiedene Techniken verwendet, um die Art und Weise zu verbessern, wie Ubuntu das Speichergerät verwendet, ob es sich um Solid-State- oder herkömmliche Laufwerke handelt.

Bei SSDs versuchen Sie, die Anzahl der Schreibvorgänge des Laufwerks zu minimieren, da Lesevorgänge dem Laufwerk keinen Verschleiß hinzufügen sollten.

1) Verwalten Sie die Auslagerungsdatei

Wenn Sie Ihren Computer nicht in den Ruhezustand versetzen und über ausreichend RAM-Speicher verfügen, um alle Ihre Anwendungen auszuführen, benötigen Sie theoretisch keine Swap-Partition.

Wenn Sie eine Mischung aus SSD und Festplatten haben, platzieren Sie Ihre Swap-Partition nur auf den Festplatten.

2) Keine Schreibvorgänge für Read-Timestamps (geeignet für SSDs und Festplatten)

Wenn Sie Ihre Partitionen mit den Optionen noatime und nodiratime mounten, werden die Zeitstempel-Schreibvorgänge beim Lesen von Dateien und Ordnern gestoppt. Diese Zeitstempel-Schreibvorgänge sind in der Regel nicht erforderlich, es sei denn, Sie verwenden einen lokalen Mail-Server-Client, z. B. mutt. Der Grund, warum dies im Allgemeinen eine schlechte Idee ist, besteht darin, dass jedes Lesen einen Schreibvorgang erzeugt, wenn die Zeitstempel aktualisiert werden. Dies verringert die Lebensdauer der SSD.

Bearbeiten Sie Ihre Konfigurationsdatei / etc / fstab (sorgfältig - nehmen Sie eine Sicherungskopie, um sicherzustellen, dass die Systemkonfiguration nicht funktioniert, wenn Sie Ihre fstab-Konfiguration unterbrechen):

cp /etc/fstab ~/fstab-backup
gksudo gedit /etc/fstab

Bearbeiten Sie die Installationsoptionen für Ihre Partitionen, indem Sie die Zeilen notime und nodiratime zu den Zeilen hinzufügen, die Ihre root (/) und andere Partitionen definieren (/ home) - Hinweis: Wenn Sie eine / home-Partition haben Beginnen Sie damit, dass Sie nur die Partition ändern, wenn Sie etwas kaputt machen möchten

# / was on /dev/sda2 during installation
UUID=587e0dc5-2db1-4cd9-9792-a5459a7bcfd2 /               ext4    noatime,nodiratime,errors=remount-ro 0       1

# /home was on /dev/sda3 during installation
UUID=2c919dc4-24de-474f-8da0-14c7e1240ab8 /home           ext4    noatime,nodiratime,defaults        0       2

Sie müssen Ihren Computer neu starten, bevor diese Änderungen wirksam werden

3) Minimierung von Schreibvorgängen von Betriebssystem und Anwendungen

Wenn Sie davon ausgehen, dass Sie keinen unternehmenskritischen Produktserver betreiben, schauen die meisten Leute nicht auf Protokolle, sollte etwas schiefgehen (besonders, da schwerwiegende Fehler für die meisten Ubuntu-Benutzer selten sind). Daher können Sie Ubuntu so konfigurieren, dass alle Protokolle in den RAM-Speicher und nicht in die SSD geschrieben werden.

Hinweis: Nehmen Sie die folgenden Änderungen nur dann vor, wenn Sie alle zu verwendenden Software installiert haben (insbesondere Apache Webserver), da es sonst zu Problemen mit fehlenden Verzeichnissen in / var / log

Hintergrundinformationen zu diesem Ansatz finden Sie unter , um die Lebensdauer Ihres Flash-Laufwerks auf ubuntu zu verlängern. eee.com

Öffnen Sie / etc / fstab mit einem Editor (vorausgesetzt, Sie haben die Datei / etc / fstab gesichert)

gksudo gedit /etc/fstab

Fügen Sie die folgenden Zeilen am Ende der fstab-Datei hinzu und speichern Sie:

# Uncomment these after all server based applications installed - eg. apache
#tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0
#tmpfs /var/tmp tmpfs defaults,noatime,mode=1777 0 0
#tmpfs /var/log tmpfs defaults,noatime,mode=0755 0 0 
#tmpfs /var/log/apt tmpfs defaults,noatime 0 0
# none /var/cache unionfs dirs=/tmp:/var/cache=ro 0 0

Sie müssen Ihren Computer neu starten, bevor diese Änderungen wirksam werden

Siehe auch:

jr0cket 08.08.2010, 15:09
90

SSD-Lebensdauer

Im Allgemeinen würde ich nicht stören - die Sorgen über SSD-Leben sind übertrieben. Sie können diesen ausführlichen Artikel darüber lesen, warum Sie sich wirklich keine Sorgen machen sollten . Kurz gesagt, die Schaltung in modernen SSDs verwaltet Wear-Leveling für Sie, und sie wissen, wie es weit besser geht als Sie.

In dem Artikel ist eine Berechnung der Lebensdauer einer SSD, die Schreibvorgänge mit einer kontinuierlichen Rate von 80M / s erhält. Das Leben ist 51 Jahre . Das basiert auf der Technologie von 2007 - das SSD-Leben wird jetzt länger sein. Und Sie schreiben fast sicher nicht mit 24 Stunden pro Tag auf Ihre SSD bei 80M / s.

SSD-Leistung

Allerdings kann die Leistungsverschlechterung im Laufe der Zeit ein Problem sein, und TRIM ist die Lösung. Es gibt zwei Optionen

  • automatische / Online-TRIM, aka verwerfen
  • manuelle TRIM

Sie müssen automatisch TRIM aktivieren . (Im Grunde genommen fügen Sie die Option discard zu Ihren Mount-Optionen hinzu, sofern Sie ext4 verwenden.) Ich habe einen Blog-Post gefunden, in dem berichtet wird, dass Die Option "Verwerfen" verlangsamt das System beim Löschen von Dateien .

Sie können dies gelegentlich manuell (oder in einem Cron-Job) tun, indem Sie fstrim . Wenn Sie nur eine Partition haben, brauchen Sie nur:

sudo fstrim /

Beachten Sie, dass fstrim nur in 11.10 und neuer verfügbar ist. Für ältere Systeme benötigen Sie das Script wiper.sh . Ich habe das Skript bei /usr/share/doc/hdparm/contrib/wiper.sh.gz auf meinem System gefunden.

Wenn Sie sich fragen, das Problem, dass TRIM löst, wie von Wikipedia beschrieben wird, ist:

  

SSDs speichern Daten in Flash-Speicherzellen, die in Seiten gruppiert sind, wobei die Seiten (normalerweise jeweils 4 kB) in Blöcke gruppiert sind (normalerweise 128 Seiten pro Block, insgesamt 512 kB). NAND-Flash-Speicherzellen können nur dann direkt beschrieben werden, wenn sie leer sind. Wenn davon ausgegangen wird, dass sie Daten enthalten, müssen die Inhalte zuerst gelöscht werden, bevor eine Schreiboperation zuverlässig durchgeführt werden kann. Bei SSDs kann eine Schreiboperation auf Seitenebene durchgeführt werden, aber aufgrund von Hardware-Beschränkungen wirken sich Löschbefehle immer auf ganze Blöcke aus. Daher ist das Schreiben von Daten auf SSD-Medien sehr schnell, solange leere Seiten verwendet werden können, verlangsamt sich jedoch beträchtlich, sobald zuvor geschriebene Seiten überschrieben werden müssen . Da ein Löschen der Zellen in der Seite erforderlich ist, bevor es erneut geschrieben werden kann, aber nur ganze Blöcke gelöscht werden können, löst ein Überschreiben einen Lese-Lösch-Modifizier-Schreibzyklus aus: den Inhalt des gesamten Blocks um im Cache gespeichert zu werden, bevor es effektiv auf dem Flash-Medium gelöscht wird, wird die überschriebene Seite in dem Cache modifiziert, so dass der zwischengespeicherte Block aktuell ist, und nur dann wird der gesamte Block (mit aktualisierter Seite) in das Flash-Medium geschrieben Dieses Phänomen wird als Schreibverstärkung bezeichnet.

    
Hamish Downer 08.08.2010 21:03
20

Es gibt mehrere Punkte:

Ausrichtung:

Was oft darauf hingewiesen wird, ist die richtige Ausrichtung der Partition. Dies sollte der Blockgröße der SSD entsprechen. Spielen Sie sicher und stellen Sie Ihre Partitionen auf MiB-Grenzen ein. Beachten Sie, dass Sie dies nicht mit dem Partitionstool des Ubuntu-Installationsprogramms tun können (das MB nicht MiB verwendet), aber Sie können die Live-CD starten, Gparted verwenden (die MiB verwendet) und dann auf Installieren klicken, um die von Ihnen eingerichteten Partitionen zu verwenden / p>

Der richtige Scheduler:

Ein wichtiger Punkt ist der Scheduler , der noop sein sollte. Sie können diesen Scheduler über kernelparameter elevator=noop oder über einen Eintrag echo noop > /sys/block/sda/queue/scheduler in Ihrem rc.local setzen.

Mountflags:

Ich würde noatime und discard

empfehlen

Tmpfs

Um tmp auf eine Ramdisk zu setzen, kann die Lebensdauer der ssd erhöht werden. Um dies zu verwenden, setze folgende Zeile in deine fstab: none /tmp tmpfs defaults 0 0

Wenn Sie tiefer in dieses Thema eintauchen möchten, würde ich Ihnen diesen ausgezeichneten Wiki-Artikel empfehlen.

    
Sebastian Rühl 03.02.2011 22:28
16

Schnellabstimmung für Ihre SSD auf Ubuntu:

Dateisystem

Arch wiki erwähnt einige bevorzugte Optionen für SSD-Dateisystem - einer von ihnen ist instabil, andere sind ext * Einsen. Ich nehme an, dass ext4 eine der besten Tipps ist.
Hinweis: Im Fall von ext4 möchten Sie möglicherweise die Option discard mount verwenden.

fstab

# <file system> <mount point> <type> <options>                                  <dump>  <pass>
proc            /proc         proc   nodev,noexec,nosuid                        0       0
tmpfs           /tmp          tmpfs  nodev,nosuid,noatime,mode=1777             0       0
/dev/sda1       /             ext4   defaults,noatime,discard,errors=remount-ro 0       1
/dev/sda2       /home         ext4   defaults,noatime,discard,user_xattr        0       2
/dev/sda3       /windows      ntfs   defaults,noatime,discard,umask=007,gid=46  0       0

Wenige wichtige Dinge sind hier:

  • Bei Systemen mit & gt; = 2 Gigabyte Speicher ist das Suchen von / tmp im RAM wünschenswert.
  • Keine swap Partition. Heutzutage wird es nur für den Winterschlaf benötigt, da moderne Maschinen ziemlich viel RAM haben.
  • Optionen noatime und discard . Info ist hier .

Scheduler

Ziehen Sie in Betracht, vom Standard-Scheduler, der unter den meisten Linux-Distributionen cfq (faire Warteschlangen) ist, zum Noop- oder Deadline-Scheduler für eine SSD zu wechseln. Die Verwendung des Noop-Schedulers zum Beispiel verarbeitet Anforderungen einfach in der Reihenfolge, in der sie empfangen werden, ohne zu berücksichtigen, wo sich die Daten physisch auf dem Datenträger befinden. Diese Option wird für SSDs als vorteilhaft angesehen, da die Suchzeiten für alle Sektoren auf der SSD identisch sind.

Fügen Sie Folgendes zu /etc/rc.local hinzu:

# SSD performance tuning
echo noop > /sys/block/sda/queue/scheduler

info

eins zwei

    
Andrejs Cainikovs 09.12.2011 18:24
8

4) automatische TRIM aktivieren

Wenn Ihre SSD dies unterstützt, sollten Sie auch automatisches TRIM aktivieren (wie hier )

    
Uli 31.12.2010 00:37
3

Ich würde diese Zeile nicht zu deiner fstab hinzufügen, der var / tmp-Ordner soll Neustarts überleben, und das könnte Probleme für dich verursachen.

tmpfs /var/tmp tmpfs defaults,noatime,mode=1777 0 0

Wenn ich ein neues System konfiguriere, lasse ich alle tmp-Ordner auf diese Weise auskommentiert, wenn etwas passiert, kann ich die Logs und Zeug überprüfen. Sobald ich das Hauptsystem eingerichtet habe, werde ich sie entkommentieren, aber ich füge nie die obige Zeile hinzu, hier ist was ich verwende:

tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0
tmpfs /var/log tmpfs defaults,noatime,mode=0755 0 0 
tmpfs /var/log/apt tmpfs defaults,noatime 0 0

Und wenn ich Probleme mit meinem System habe, kommentiere ich diese aus, um alles auch nach einem Neustart oder einem erzwungenen Neustart nach einer Sperrung überprüfen zu können.

Auch brauchen Sie nicht nodiratime, Noatime Option kümmert sich um beides.

Wie bei TRIM, wenn Ihr hw / sw es unterstützt, ist es ein Muss, ich verwende nicht in fstab ablegen. Ich erstelle einen täglichen cron, weil mein PC immer an ist, indem ich das tue:

gksu gedit /etc/cron.daily/trim

Dann fügen Sie diese Datei hinzu und speichern Sie sie (Wenn Sie keine separate / home-Partition auf SSD haben, oder andere Teile haben, die auf SSD sind, sollten Sie die Idee bekommen, wie Sie dies ändern:

#!/bin/sh
LOG=/var/log/trim.log
echo "*** $(date -R) ***" >> $LOG
fstrim -v / >> $LOG
fstrim -v /home >> $LOG

Dann machen Sie die Datei ausführbar durch:

sudo chmod +x /etc/cron.daily/trim

Ich bearbeite auch meine rc.local wie folgt:

gksu gedit /etc/rc.local

Fügen Sie oben "exit 0" und unterhalb der letzten # hinzu:

# Modification for SSD
# you may want to add more folders to be checked/created to this list
for dir in apparmor apt ConsoleKit cups dist-upgrade fsck gdm installer news ntpstats samba speech-dispatcher unattended-upgrades; do
  if [ ! -e /var/log/$dir ] ; then
    mkdir /var/log/$dir
  fi
done

Sie können von hier aus Kopieren und Einfügen, so dass es keine Fehler gibt, für den Laien sieht es aus wie geschlagen, ist es nicht.

Ich habe auch gelesen, dass das Verlassen von 10% Ihrer SSD-Festplatte unformatiert das Leben verlängern kann, das bleibt abzuwarten. Ich habe nicht viel in das gelesen, so kann ich nicht verbürgen, wenn es sinnvoll ist, dies zu tun.

Dies ist der beste Allround-Guide, er hat einen Tag lang nicht über Google geblättert und sich dann einen Leitfaden ausgedacht, Sie sollten sich das einmal ansehen HIER

    
JohnRB 29.07.2013 00:53
3

TRIM ermöglicht es einem Betriebssystem, eine SSD darüber zu informieren, welche Datenblöcke nicht mehr verwendet werden und intern gelöscht werden können. Das Trimmen ermöglicht der SSD, den Speicherbereinigungs-Overhead im voraus zu verarbeiten, der andernfalls zukünftige Schreiboperationen auf die beteiligten Blöcke im voraus signifikant verlangsamen würde. 1

In Ubuntu 14.04 wurde dem util-linux -Paket ein neues Feature hinzugefügt, das SSDs regelmäßig automatisch trimmt, aber nur bei SSDs von Intel und Samsung ist TRIM standardmäßig aktiviert, weil einige billige SSDs sogar gemauert werden können sich selbst beim Ausführen von TRIM. 2 Der Inhalt von /etc/cron.weekly/fstrim in Ubuntu 14.04:

#!/bin/sh
# call fstrim-all to trim all mounted file systems which support it
set -e

# This only runs on Intel and Samsung SSDs by default, as some SSDs with faulty
# firmware may encounter data loss problems when running fstrim under high I/O
# load (e. g.  https://launchpad.net/bugs/1259829). You can append the
# --no-model-check option here to disable the vendor check and run fstrim on
# all SSD drives.
exec fstrim-all

1 link
2 Wie ist das Trimmen aktiviert?

    
karel 25.12.2013 02:52
2

Es ist klar, dass /var/tmp nicht in tmpfs enthalten sein sollte, da der Inhalt definitionsgemäß über die Neustarts hinaus erhalten werden muss:

  • Unterschiede zwischen TMP und VarTMP
user95602 09.10.2012 18:12
2

Ok "lange Geschichte kurz":

  1. Ja. Es ist wie eine normale Festplatte. Hier ist ein guter Überblick.
  2. Einige besondere Extras, die ich behandeln werde.
  3. Ziemlich gut. Ich benutze es mit einem Server.

Formatieren Sie als ext4 während der Installation und erstellen Sie einen kleinen Swap ~ 1 GB. Nach der Installation editiere fstab mit sudo gedit /etc/fstab und füge die folgende Zeile hinzu

tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0

Dadurch wird ein RAM-Laufwerk für Ihre temporären Dateien erstellt, wodurch die Alterung verringert wird. Fügen Sie auch noatime,nodiratime,discard nach den Standardeinstellungen zu Ihrer ext4-Zeile hinzu. Dies verringert auch den Verschleiß und aktiviert die TRIM-Funktion. Speichern und neu starten.

    
gajdipajti 24.04.2012 00:06
2

Es gibt einige gute Informationen Wie man SSD für Ubuntu, Linux Mint optimieren und optimieren kann von link , an dem Sie möglicherweise interessiert sind

Preload verwenden

Preload auf Ubuntu-, Linux Mint- oder Debian-basierten Distributionen installieren

# apt-get update && apt-get install preload

Schalten Sie Ihren Swap aus

Um die Swappiness-Einstellung zu ändern:

$ su -
# nano /etc/sysctl.conf

Fügen Sie diese Zeile in die Datei sysctl.conf ein.

vm.swappiness = 10
    
Sue Russell 09.11.2013 19:58
2

UPS ist erforderlich. In der Datei /etc/sysctl.conf

vm.dirty_writeback_centisecs = 15000
vm.swappiness = 10

Suchen Sie den Konfigurationsdateidämon, normalerweise /etc/syslog.conf или /etc/rsyslog.d/ und alle Pfade des Formulars /var/log/ ändern Sie, indem Sie ein Minuszeichen ("-") vor Weisen schreiben. Vor mail.err

/var/log/mail.err

Nach
mail.err -/var/log/mail.err

Verwenden Sie FS btrfs und verwenden Sie die Option -o ssd

Weitere Verknüpfung

    
1

Wie man SSD für Ubuntu optimiert und optimiert, Linux Mint

Aktivieren Sie TRIM

TRIM (Trim-Befehl lässt ein OS wissen, welche SSD-Blöcke nicht verwendet werden und gelöscht werden können)

Sichern Sie zuerst fstab, falls etwas nicht in Ordnung ist.

# cp /etc/fstab ~/fstab.bk

Bearbeiten Sie die fstab-Datei

# nano /etc/fstab

Fügen Sie nach ext4

zu den SSD-Laufwerken oder -Partitionen discard hinzu
UUID=bef10b86-494d-41c6-aa46-af72cfba90fd / ext4 discard,errors=remount-ro 0 1
Adding noatime and nodiratime

noatime und nodiratime sind Mount-Optionen in Linux für Linux-Dateisystem. noatime deaktiviert atime-Updates im Dateisystem, und nodiratime deaktiviert atime-Updates im Verzeichnissystem. Durch die Zugabe von Noatime und Nodiratime wird die SSD-Last erheblich reduziert, was zu Leistungssteigerungen führt.

Bearbeiten Sie die fstab-Datei

# nano /etc/fstab

Fügen Sie Ihren ssd Laufwerken oder Partitionen nach ext4 nodiratime

hinzu
UUID=bef10b86-494d-41c6-aa46-af72cfba90fd / ext4 discard,noatime,nodiratime,errors=remount-ro 0 1
    
user223973 24.12.2013 23:44
0

Ich schlage vor, nur diejenigen Dinge, die beim Booten auf der SSD gelesen werden, alle Anwendungen, die viel Zeit zum Laden benötigen.Daten und Protokolle und andere unkritische Dinge, die ich auf einer normalen Festplatte finden würde.Sie könnten auch Ihre Ubuntu einrichten nur eine große initramfs von SSD zum Zeitpunkt des Bootens laden und nicht Änderungen an ssd zurückschreiben.Dies hat den Vorteil, dass Änderungen an dieser Partition nicht persistent sind, das ist wie ein Schutz für Ihr Boot-System.Daher benötigen Sie viel mehr RAM natürlich.

Ich würde z.B. Platziere die Partitionen /, / etc, / usr, / boot, / lib 32/64 auf SSD, während etw so aussieht wie

/ opt, / bin, / sbin, / root, / home und sogar tauschen (RAM erhöhen !!!) auf HDD

Wikipedia sagt:

  

Der Linux-Kernel unterstützt die TRIM-Funktion ab Version 2.6.33. Das ext4-Dateisystem wird unterstützt, wenn es mit dem Parameter "discard" geladen wird. Die neuesten Datenträgerdienstprogramme (und daher die Installationssoftware, die sie verwendet) wenden ebenfalls eine ordnungsgemäße Partitionsausrichtung an.

Für Backups gibt es viele Möglichkeiten, am einfachsten ist (r) sync plus cron job.

    
Michael K 09.12.2011 17:26

Tags und Links