OS-Optimierungen für Flash-SSDs

HisN

Legende
Thread Starter
Mitglied seit
09.06.2006
Beiträge
31.781
Update: Da die meisten Tips einfach von der Zeit überholt worden sind.
Behandelt eure SSDs einfach wie Festplatten, und ihr seid auf der sicheren Seite.
Das einzige was mir jetzt noch wirklich einfällt sind: Aligment muss stimmen. Defragmentiert muss nicht mehr werden, AHCI ist Pflicht. Setzt man Win7 als OS muss man NIX mehr beachten. Trim hin oder her ... die Garbage-Collection der meisten SSD funktioniert sehr gut.


Vorbereitung
  1. Partitionen so anlegen das sie auf einem 128/256k-Block starten braucht man als Vista oder 7-Nutzer nicht. Machen diese OS von alleine.
    http://www.forumdeluxx.de/forum/showpost.php?p=10371389&postcount=18
  2. Ramdisk nutzen
    Eine Ramdisk installieren: (www.ramdisk.tk ist das Tool meiner Wahl, ihr findet bestimmt noch andere) und dann die Temp-Verzeichnisse von Windows dorthin umbiegen. So werden automatisch alle Install/Packer-Aktionen sofort in der Ramdisk ausgeführt, es entsteht weniger Datenmüll auf der Platte und sie muss nicht so viel schreiben (nebenbei gib das noch einen kräftigen Speed-Vorteil). Der Nachteil. Die Ramdisk muss dafür ausreichend dimensioniert sein, sonst könnte es sein dass das Packen/Entpacken sehr großer Archive oder das Einspielen sehr großer Patches fehlschlägt. Bitte genau drauf achten.
    Dazu mit Windows-Taste+Unterbrechen-Taste das Systempanel aufrufen, den Erweitert-Reiter aufrufen und dort in den Umgebungsvariablen die Verzeichnisse für TEMP und TMP im oberen und unteren Fenster (insgesamt also 4 Einträge) mit dem Laufwerksbuchstaben der Ramdisk beglücken. Falls mehrere Benutzer auf dem Rechner angelegt sind muss das für jeden User einzeln erledigt werden. Natürlich kann man (wenn man die Daten nicht zwingend länger benötigt) auch den Browser-Cache in die Ramdisk biegen (in meinen Augen allerdings leicht kontraproduktiv), und viele Programme erlauben es ein Verzeichnis für Temp-Aktivitäten zu definieren. Photoshop z.b. Die Arbeitsvolumes in die Ramdisk gibt extrem viel Speed und entspannt die Platten, oder die Log-Dateien vom Rivatuner, Webtemp oder der Aquaero-Suite. Dazu muss man sich die Software die man selbst benutzt nur mal genauer anschauen.
  3. Defrag abschalten
    SSDs müssen nicht mehr defragmentiert werden, der Zugriff erfolgt praktisch ohne Zeitverzögerung da kein Lesekopf positioniert werden muss.
    Bei Vista dazu einfach "Defragmentierung" ins Suchfenster tippen und dann im sich öffnenden Fenster die Zeitplansteuerung deaktivieren oder in den Erweiterten Einstellungen den Haken bei den Flash-Basierten Laufwerken entfernen.
    Bei XP ist es schwieriger. Geht z.b. mit den MS-Powertoys. http://www.microsoft.com/windowsxp/downloads/powertoys/xppowertoys.mspx
    1. Tweak UI downloaden und installieren
    2. Unter "General" --> "Optimize hard disk when idle" den Haken entfernen. Oder gleich (auch für die XP64-User bei denen die Powertoys vielleicht nicht laufen) die Registry von Hand bearbeiten. http://www.pc1news.com/optimizing-hard-disk-when-idle-1309.html
    Windows 7 schaltet Defrag automatisch ohne User-Intervention ab sobald das OS eine SSD erkennt (Wenn es sie denn erkennt^^).
 
Zuletzt bearbeitet:
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
laufwerksindizierung abschalten fällt mir noch ein
 
Da bin ich schon wieder geteilter Meinung. Wenn man die Windows-Suche benutzt ist das kein so schlechtes Tool :-)
Aber im schlimmsten Fall biegt man die Search-DB-Verzeichnisse auch in die Ramdisk um^^. Dann wird zwar Indiziert, aber nicht auf die SSD geschrieben :-)
 
die Ramdisk muss dazu aber beim beenden immer gespeichert werden sehe ich das richtig?

oder geht auch ein Image das nur geladen wird?
 
Angeblich soll bei den billigen SSD´s das Ausschalten des SchreibCaches helfen. Ich würde dies aber nur empfehlen, wenn es zu Problemen kommt. Weiterhin sollte man bei Problemen testweise AHCI deaktivieren.

MfG Kabelmaster

P.S. super gelungen ;)
 
die Ramdisk muss dazu aber beim beenden immer gespeichert werden sehe ich das richtig?

oder geht auch ein Image das nur geladen wird?

In welchem Fall muss sie gespeichert werden? Ich würde da natürlich nur Daten hin umleiten die unwichtig sind.

@Kabelmaster
Hehe. Ich dachte mir ich fang einfach mal an nach Deinem Fred gestern.
 
Zuletzt bearbeitet:
Hehe, hab ja gesagt, möchte auch dazu beitragen, wenn ich was höre bzw. lese. Nochmal zum Verständnis Ramdisk, wenn ich Temp und Co dahin umleite, ist es ja egal, dass die jedes mal beim neustarten gelöscht wird oder? Welche Größe ist für die RAMdisk zu empfehlen(habe 4GB RAM aber nur XP-32bit, wegen Kompatibilität)? Auslagerungsdatei plane ich auf eine 4GB SD-Karte zu machen(sollte ja locker reichen wa?).

MfG Kabelmaster

P.S. SSD ist für mich totales Neuland, normal stell ich mich nicht so an*g*
 
Kan man bei Pagefiles Prioritäten setzen ? Denn grad bei kommenden Nehalem Systemen mit 3x2 GB Ram kann man dann ja ne dicke Ramdisk machen und ich sag mal 3-4 GB SPeicher so lassen. Dann könnte man die Ramdisk verwenden und wenn dann doch mal mehr Pagefile gebraucht wird, nimmt sich Windows dann das zweite Pagefile aufer Platte. Aber das ist von Windows bestimmt schon zu viel verlangt oder ?? :d
 
Defrag abschalten
SSDs müssen nicht mehr defragmentiert werden, der Zugriff erfolgt praktisch ohne Zeitverzögerung da kein Lesekopf positioniert werden muss.
Bei Vista dazu einfach "Defragmentierung" ins Suchfenster tippen und dann im sich öffnenden Fenster die Zeitplansteuerung deaktiveren oder in den Erweiterten Einstellungen den Haken bei den Flash-Basierten Laufwerken entfernen.
Bei XP ist es schwieriger. Geht z.b. mit den MS-Powertoys. http://www.microsoft.com/windowsxp/downloads/powertoys/xppowertoys.mspx

Ich wusste gar nicht, dass XP die Festplatten automatisch defagmentiert. Was ist da die Default Einstellung?
 
@Kabelmaster
Hehe, schau einfach mal in Deinen Standard-Temp-Ordner (C:\Windows\Temp).
Ich bin mir sehr sicher dass es keine Probleme bereitet wenn der Scheiss bei jedem Neustart verschwindet :-)

Deshalb ja auch die Einschränkungen beim Browser-Cache. Da macht es bei sehr lahmen Internet-Verbindungen durchaus Sinn das er nicht gelöscht wird. Bei 16MBit isses schon wieder fast egal, und bei Leuten die über einen LAN-Proxy gehen ist es auch unnütz.

Eine generelle Größe möchte ich nicht vorschlagen, die hängt von Dir und Deiner Arbeitsweise ab. Ich hab z.b. auf dem Laptop 256MB, was völlig ausreichend für die meisten Aktionen ist, aber dann im Packer Explizit ein Temp-Verzeichnis ausserhalb der Ramdisk eingestellt, weil man da bei den Archiven schnell über diese 256MB kommt.

@gamefreaktegel
Ist Dir noch nie aufgefallen das Deine Festplatte losrattert wenn der Bildschirmschoner ein bisschen an war? Seh ich allerdings auch immer nur am Laptop, weil er sonst überall bei mir abgeschaltet ist.

@ic3m4n2005
Bin ich überfragt. Ich weiß nicht ob die Pagefiles in der Reihenfolge wie sie in der Systemsteuerung erscheinen befüllt werden oder gleichzeitig :-(
 
Zuletzt bearbeitet:
Genau das war mein bedenken, beim Packer. Für die meisten anderen Sachen sollten aber locker 256MB reichen wa? Den Browser-Cache werde ich unangetastet lassen, da ich an der Arbeit häufig mit GPRS/UMTS arbeiten muss und da is das doch ganz hilfreich*g*.

MfG Kabelmaster

P.S. das XP ne automatische Defragmentierung hat war mir auch neu, zum Glück haben wir HisN als SSD-Profi :)
 
@gamefreaktegel
Ist Dir noch nie aufgefallen das Deine Festplatte losrattert wenn der Bildschirmschoner ein bisschen an war? Seh ich allerdings auch immer nur am Laptop, weil er sonst überall bei mir abgeschaltet ist.

Schon, habe aber das immer für die Indexierung oder so gehalten ;)
 
Zum Punkt Defragmentierung unter XP evtl. etwas ausführlicher:

1. Tweak UI downloaden und installieren
2. Unter "General" --> "Optimize hard disk when idle" den Haken entfernen
 
Das hängt von Dir ab. Brauchst Du sie?
Darauf will ich hinaus. Es hängt von Dir ab und nicht von mir, wie fast jede Frage die sich um Rechner dreht immer auf den Standpunkt des Fragestellers ankommt. Ich brauche sie nicht, deshalb ja auch meine Vorschläge. Die reine Dateisuche über eine SSD ist übrigens Sekundensache^^. Erst bei Dateiinhalten wird es interessant^^
 
Ist Dir noch nie aufgefallen das Deine Festplatte losrattert wenn der Bildschirmschoner ein bisschen an war? Seh ich allerdings auch immer nur am Laptop, weil er sonst überall bei mir abgeschaltet ist.

Ich hab das bei meinem Notebook mal als "Hilfe und Support"-Dienst identifiziert. Dieser Dienst ist offensichtlich der Meinung, er müsse seine Indizierung ständig aktuell halten. Ich nutzte das Windoof "Hilfe und Support" Center :kotz: nicht und habe den Dienst abgeschalten. Außerdem habe ich auch den Indexdienst deaktiviert (Systemsteuerung-> Verwaltung-> Dienste).

Da SSD's nicht so üppig Speicher haben noch der Hinweis: Die Windows Systemwiederherstellung belegt ungefragt bis zu 15% der Disk Kapazität (in einem hidden Bereich). Wer auf das Feature verzichten kann (weil er regelmäßig Backupimages erstellt) kann das mit Arbeitsplatz-> Eigenschaften-> Systemwiederherstellung lokal oder mit gpedit.msc komplett abstellen.
 
Partitionen aligned auf Größe der Eraseblocks oder Pages legen.

Die Eraseblocks sind 128k-16MB groß und enhalten Pages, die 2-256k groß sind, das hängt von der SSD ab und ob man das pro NAND-Chip oder pro SSD sehen will. Die 4k-Blöcke des Dateisystems sollen aligned auf den Pages liegen, da Pages nur als ganzes gelesen oder geschrieben werden.

Manche Dateisysteme haben ein segmentiertes Layout, zb. hat nilfs2 8MB große Segmente, die in 4k Blöcke eingeteilt sind. Diese Dateisysteme dann aligned zu den Eraseblocks legen.
www.usenix.org/event/lsf08/tech/shin_SSD.pdf

Da ein 16MB Alignment automatisch auch ein 8MB, 4MB, 2MB, 1MB, 512K, 256K, 128K, 64k, 32k, 16k, 8k, 4k, 2k Alignment ist, kann man auch einfach ein 16MB Alignment nehmen und ist für alle Eventualitäten gerüstet.

Bei OCZ V1 sind die Eraseblocks 8MB groß, bei Transcend 128GB sind sie 16MB groß, bei MTron Mobi 2MB.
Bei meinem Rally2 USBStick sinds 4MB. Die Größe der Eraseblocks kann man so ermitteln:
http://www.forumdeluxx.de/forum/showthread.php?p=11066540#post11066540

Bei Windows XP braucht man eine aktualisierte Version von diskpart.exe:
Doku für Diskpart:
http://technet.microsoft.com/en-us/library/cc773140.aspx
Hier Anleitung von OCZ (mit Downloadlinks für aktualisiertes diskpart), die ein 128k Alignment empfehlen
http://www.ocztechnologyforum.com/forum/showthread.php?t=48309
Hier war bei Apex (hat internes RAID0 mit 2 JMicrons) ein 256k Alignment besser
http://www.ocztechnologyforum.com/forum/showthread.php?t=49681&page=3
Hier war 1MB Aligment (ICH9R-RAID0 über 2 G.Skill Titan mit internem RAID0) besser
http://www.xtremesystems.org/forums/showthread.php?t=215259
Hier wird (am Beispiel eines HDD RAIDs) auch beschrieben wie die Programme bedient werden (der Rest des Dokument ist für SSDs uninteressant):
www.vmware.com/pdf/esx3_partition_align.pdf

Bei Windows Vista wird automatisch ein 32k Alignment verwendet (glaub ich, hab kein Vista).

Bei Linux nimmt man fdisk -u:
Bei einem 8MB Alignment mit fdisk -u würde z.B. die erste Partition bei Sektor 16384 (512Byte * 16384 = 8MB) beginnen. Bei 16MB Alignment bei Sektor 32768. Genauer hier:
http://www.forumdeluxx.de/forum/showthread.php?t=543445&page=3

Nilfs2 ist mit Eraseblock-Alignment schneller als nur mit Page-Alignment.
Postmark Bench auf OCZ rally2 USB-Stick mit nilfs2. Kleine Dateien 9-15k read/write (10000 files, 100000 Transactions):
ohne alignment: 507 Transactions/s
mit 64k alignment: 561 Transactions/s
mit 128k alignment: 588 Transactions/s
mit 4MB alignment: 598 Transactions/s

Also 18% schneller als ohne Alignment bei kleinen Dateien. Bei großen Dateien 0,1-3MB read/write wars 21% schneller bei 128k alignment (Zahlen für 4MB align und große Dateien hab ich grad nicht da).

Bei ntfs-3g mit Linux wars beim gleichen Postmark Bench 12% schneller.
http://www.forumdeluxx.de/forum/showthread.php?t=543445&page=3
 
Zuletzt bearbeitet:
Antiram
Kannste die Funktionalität dahinter mal bitte erläutern?
 
Ein Tip was man auf jeden Fall noch machen kann, gerade im SSD Sammelthread gelesen:
Prefetch deaktivieren(ist ja bei SSD sinnlos)

MfG Kabelmaster
 
Antiram
Kannste die Funktionalität dahinter mal bitte erläutern?
Normalerweise werden Spuren als Partitionsgrenzen verwendet. Dummerweise hat eine Spur normalerweise ausgerechnet 63 Sektoren. Es hat sich aber gezeigt, daß RAIDs schneller werden wenn sie aligned auf Stripsize liegen (oder zumindest aligned auf 8k). Im Doc von VMWare sind auch Performancevergleiche.

Aligned auf Größe der Eraseblocks für SSDs wird hier empfohlen:
http://www.usenix.org/event/lsf08/tech/shin_SSD.pdf
Dort sind auch Performancevergleiche von ext2, ext3, ext4, reiserfs, btrfs, nilfs. Gebencht wurde mit postmark, dabei werden Dateien angelegt, geändert, gelesen, gelöscht. Die +18% und +21% hab ich auch mit postmark gebencht.

hier hat colorado ein 128k Alignment auf xfs und nilfs2 angewendet indem er die Partitionstabelle einfach weglässt und die SSD als ganzes formatiert:
http://www.forumdeluxx.de/forum/showpost.php?p=10296790&postcount=713

colorado hat auch optimierte Einstellungen für xfs ermittelt. Zum anlegen:
mkfs -t xfs -l lazy-count=1 -d sectsize=512 -d su=131072 -d sw=128
Zum mounten:
mount -t xfs -o noatime,nodiratime,logbufs=8

Das schnellste Filesystem für SSDs ist aber z.Zt. nilfs2, vor allem bei kleinen Dateien. Ich habs u.a. mit ext3 auf usbstick verglichen. Kleine Dateien 9-15k read/write:
ext3 (mount -o noatime,noadirtime, normale Partition, scheduler cfq): 49 Transactions/s
nilfs2 (Partition aligned 128k, scheduler noop, protection_period 10s): 588 Transactions/s
Bei großen Dateien 0,1-3MB read/write 9% schneller.

nilfs2 ist noch nicht im Kernel, deshalb ist es sicher auch nicht so gestählt wie ext3, xfs, reiserfs. Wers trotzdem als rootfs probieren will, das geht so:

Eine Ubuntu Installation auf nilfs2 als rootfs verschieben:
Nilfs2 Source mit Anleitung oder fertige Pakete für Ubuntu, Fedora, Suse usw. gibts hier:
http://www.nilfs.org/en/download.html
Dazu braucht man den Kernel nicht neu bauen.
Einen Kernelpatch für 2.6.27 gibts hier:
http://www.nilfs.org/pub/patch/
Anleitung zum Kernel bauen:
http://www.howtoforge.com/kernel_compilation_ubuntu

Alles gemäß Anleitung installieren und Partitionen auf SSD aligned anlegen wie in Posting 18 beschrieben.
Partition 1 für /boot als ext2 formatieren. ca. 200MB
Partition 2 für den Rest als nilfs2
Partition 3 für swap (besser auf Platte)
/home lässt man zur Sicherheit besser auf Platte

Man muss jetzt das nilfs2 zeugs und cp in die initrd Ramdisk einbauen um die Installation auf nilfs2 verschieben zu können und davon zu booten:
1. in /etc/initramfs-tools/modules: nilfs2 reinschreiben damit das Modul kopiert wird.

2. als Vorlage z.b. /usr/share/initramfs-tools/hooks/ntfs_3g kopieren nach
/etc/initramfs-tools/hooks/nilfs2 und entsprechend anpassen mit:
copy_exec /sbin/mount.nilfs2 /sbin
copy_exec /sbin/umount.nilfs2 /sbin
copy_exec /sbin/nilfs_cleanerd /sbin (kann man wahrscheinlich auch weglassen)
copy_exec /sbin/cp /bin
Links anlegen wie in der Vorlage brauchen wir nicht.

3. initrd updaten mit: update-initramfs -u -k $(uname -r)

4. Neu booten aber im Grub Bootmenü "e" zum editieren des Booteintrags drücken und root=UUID=123usw aus der ensprechenden Zeile rausschmeißen, return und "b" drücken zum booten. Man landet nach einer Weile in der Kernelshell weil kein rootfs angegeben wurde. Rootfs ist jetzt die initrd. Jetzt die Installation kopieren:
mkdir /source
mkdir /target
mount -t ext3 -n /dev/sdX /source
mount.nilfs2 -n /dev/sdY /target
/source/boot auf die 1. Partition auf SSD mit ext2 kopieren, den Rest auf die große Partition mit:
cp -a /source/* /target/

5. Danach reboot und die alte Installation booten, das Grub-Bootmenü um die kopierte Installation erweitern in /boot/grub/menu.lst. Als rootfs nimmt man besser erstmal keine UUIDs sondern altmodisch root=/dev/sdX als Kernelparameter. Der Kernelparameter "elevator=noop" führt dazu daß der für SSDs schnellere Scheduler noop statt cfq systemweit verwendet wird

6. Jetzt die kopierte Installation mounten und zum booten vorbereiten:
mount -t nilfs2 /dev/sdX /mnt

7. die IO-Scheduler für die Datenträger anpassen. Falls man nicht mit elevator=noop bootet jetzt in /mnt/etc/rc.local reinschreiben für die SSD:
echo noop > /sys/block/sdX/queue/scheduler
ansonsten die Scheduler für die Platten auf cfq zurücksetzen:
echo cfq > /sys/block/sdY/queue/scheduler

8. falls man continuous snapshots, das Hauptfeature von nilfs, nicht braucht, den cleaner auf 10s einstellen in /mnt/etc/nilfs_cleanderd.conf mit:
protection_period 10
Dann werden gelöschte Dateien nach 10s tatsächlich gelöscht. Genaueres zu continuous snapshots bitte auf http://www.nilfs2.org nachlesen.

9. /mnt/etc/fstab anpassen zb.:
/dev/sda5 / nilfs2 rw 0 0
Unbedingt "rw" als mount option bei nilfs2 angeben. /boot auch eintragen in fstab
/tmp und /var/run kann man in fstab auf ramdisk legen zb:
none /tmp tmpfs defaults 0 0

10. neue Installation booten.
 
Zuletzt bearbeitet:
Falls man die Windows-Suche nicht benutzt. Das ist der erste Link den ich gefunden habe.
Alternativ kann man natürlich mit Hilfe der Registry einfach das Verzeichnis der Search-DB in die Ramdisk umbiegen.
Dann indiziert die Suche nach jedem Neustart neu weil die Datenbank weg ist...
 
Jupp, geht aber auf einer SSD rasend schnell und beeinträchtigt die Arbeit nicht.
Genau wie z.b. Bitdefender der innerhalb einer Minute das Vista-Laufwerk gescannt hat.
 
Jupp, geht aber auf einer SSD rasend schnell und beeinträchtigt die Arbeit nicht.
Genau wie z.b. Bitdefender der innerhalb einer Minute das Vista-Laufwerk gescannt hat.
Wenn man alle Daten die man indizieren möchte auf teuren SSDs hat schon - wenn man aber die meisten Daten auf großen Festplatten hat dann rattern die die ganze Zeit...
 
Verdammt, ich sollte nicht immer von mir auf andere schließen.
Ich hab meine Daten auf einem Netzwerk-Server. Und Netzlaufwerke werden nicht von alleine Indiziert.
 
Naja, wenn man seine Daten nicht indiziert macht es auch keinen Sinn die Suche überhaupt aktiv zu lassen.
 
wieviel sollte man der ramdisk zuteilen? und wie ist das eigentlich wenn ich unter xp 32bit 4 gig ram habe kann ich da beruhigt 1 gig abzwacken und hab dann immer noch meine 3 gig für xp oder kommt dann wieder das problem, dass mein xp nur max.3.25gig hat zu benutzen? (hab das immer noch nicht ganz verstanden^^) oder gehen ganz einfach von den 3.25gig das 1 gig weg und die 0.75gig sind einfach tot=nicht da?

die ganzen tipps kann man doch
auch auf eine andere hdd machen bzw.eine extra partition anlegen die müll benennen und gut ist oder? einziger vorteil einer ramdisk ist, dass der ganze müll nach jedem neustart weg ist oder?

edit: kennt wer diese ramdisk bzw.taugt das was?
http://www.superspeed.com/desktop/ramdisk.php
 
Zuletzt bearbeitet:
Unter XP32 hast Du immer das Problem das der Adressbereich den Deine Hardware belegt für Dich nicht nutzbar ist. Da ändert die Ramdisk nix dran. Das geht nochmal von dem verwendbaren Speicher weg.
 
Unter XP32 hast Du immer das Problem das der Adressbereich den Deine Hardware belegt für Dich nicht nutzbar ist. Da ändert die Ramdisk nix dran. Das geht nochmal von dem verwendbaren Speicher weg.

also ich hab nur 3.25 gb und basta das 1 gb geht dann davon weg :(
wie war das nochmals das xp nur 2 gb überhaupt benutzen kann oder ist das pro anwendung gemeint? wie groß sollte den nun die ramdisk sein,und kann man das auch alles mit einer hdd partition machen...also kann ich mir den ganzen stress sparen oder hat es mehrere vorteile auser, dass beim neustart der tempordner geputzt ist?^^
taugt den jetzt die ramdisk was die ich gepostet habe?(sollte wohl meine fragen immer eine nach der andere stellen und auf antwort warten! :fresse: )
 
Zuletzt bearbeitet:
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh